diff options
author | Robbie King <robking@cisco.com> | 2014-09-09 09:49:52 -0400 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2014-09-10 13:34:20 +0400 |
commit | 32bb1ca0bba91bde7fd7d49a76b55e2bd2abd5f4 (patch) | |
tree | 6eff3c43dc9cf45e6c49982998fdc03cd68675ea /platform | |
parent | 130a94f6a16a77e47e85b3af7399c4cbfc65d4dc (diff) |
Add ability to set packet flags
Signed-off-by: Robbie King <robking@cisco.com>
Tested-by: Alexandru Badicioiu <alexandru.badicioiu@linaro.org>
Reviewed-and Tested-by: Taras Kondratiuk <taras.kondratiuk@linaro.org>
Reviewed-by: Bala Manoharan <bala.manoharan@linaro.org>
Reviewed-by: Anders Roxell <anders.roxell@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'platform')
-rw-r--r-- | platform/linux-generic/include/api/odp_packet_flags.h | 136 | ||||
-rw-r--r-- | platform/linux-generic/odp_packet_flags.c | 87 |
2 files changed, 223 insertions, 0 deletions
diff --git a/platform/linux-generic/include/api/odp_packet_flags.h b/platform/linux-generic/include/api/odp_packet_flags.h index eb9315bc8..2c19440cb 100644 --- a/platform/linux-generic/include/api/odp_packet_flags.h +++ b/platform/linux-generic/include/api/odp_packet_flags.h @@ -182,6 +182,142 @@ int odp_packet_inflag_icmp(odp_packet_t pkt); */ void odp_packet_outflag_l4_chksum(odp_packet_t pkt); +/** + * Set flag for L2 header, e.g. ethernet + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_l2(odp_packet_t pkt, int val); + +/** + * Set flag for L3 header, e.g. IPv4, IPv6 + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_l3(odp_packet_t pkt, int val); + +/** + * Set flag for L4 header, e.g. UDP, TCP, SCTP (also ICMP) + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_l4(odp_packet_t pkt, int val); + +/** + * Set flag for Ethernet header + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_eth(odp_packet_t pkt, int val); + +/** + * Set flag for jumbo frame + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_jumbo(odp_packet_t pkt, int val); + +/** + * Set flag for VLAN + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_vlan(odp_packet_t pkt, int val); + +/** + * Set flag for VLAN QinQ (stacked VLAN) + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_vlan_qinq(odp_packet_t pkt, int val); + +/** + * Set flag for ARP + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_arp(odp_packet_t pkt, int val); + +/** + * Set flag for IPv4 + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_ipv4(odp_packet_t pkt, int val); + +/** + * Set flag for IPv6 + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_ipv6(odp_packet_t pkt, int val); + +/** + * Set flag for IP fragment + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_ipfrag(odp_packet_t pkt, int val); + +/** + * Set flag for IP options + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_ipopt(odp_packet_t pkt, int val); + +/** + * Set flag for IPSec + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_ipsec(odp_packet_t pkt, int val); + +/** + * Set flag for UDP + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_udp(odp_packet_t pkt, int val); + +/** + * Set flag for TCP + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_tcp(odp_packet_t pkt, int val); + +/** + * Set flag for SCTP + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_sctp(odp_packet_t pkt, int val); + +/** + * Set flag for ICMP + * + * @param pkt Packet handle + * @param val Value + */ +void odp_packet_set_inflag_icmp(odp_packet_t pkt, int val); + #ifdef __cplusplus } #endif diff --git a/platform/linux-generic/odp_packet_flags.c b/platform/linux-generic/odp_packet_flags.c index 992b94b41..06fdeedf7 100644 --- a/platform/linux-generic/odp_packet_flags.c +++ b/platform/linux-generic/odp_packet_flags.c @@ -113,3 +113,90 @@ void odp_packet_outflag_l4_chksum(odp_packet_t pkt) { odp_packet_hdr(pkt)->output_flags.l4_chksum = 1; } + +/* Set Input Flags */ + +void odp_packet_set_inflag_l2(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.l2 = val; +} + +void odp_packet_set_inflag_l3(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.l3 = val; +} + +void odp_packet_set_inflag_l4(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.l4 = val; +} + +void odp_packet_set_inflag_eth(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.eth = val; +} + +void odp_packet_set_inflag_jumbo(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.jumbo = val; +} + +void odp_packet_set_inflag_vlan(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.vlan = val; +} + +void odp_packet_set_inflag_vlan_qinq(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.vlan_qinq = val; +} + +void odp_packet_set_inflag_arp(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.arp = val; +} + +void odp_packet_set_inflag_ipv4(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.ipv4 = val; +} + +void odp_packet_set_inflag_ipv6(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.ipv6 = val; +} + +void odp_packet_set_inflag_ipfrag(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.ipfrag = val; +} + +void odp_packet_set_inflag_ipopt(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.ipopt = val; +} + +void odp_packet_set_inflag_ipsec(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.ipsec = val; +} + +void odp_packet_set_inflag_udp(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.udp = val; +} + +void odp_packet_set_inflag_tcp(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.tcp = val; +} + +void odp_packet_set_inflag_sctp(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.sctp = val; +} + +void odp_packet_set_inflag_icmp(odp_packet_t pkt, int val) +{ + odp_packet_hdr(pkt)->input_flags.icmp = val; +} |