This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, api-next has been updated via 4b1101adedf0941f6db34047cc06fde11fb06a34 (commit) via 9e8f9bc4ad6f07520c313d64e758b3eac3724a0b (commit) via 41b3fa2cd994a7ef68290a07dcde5564e4640847 (commit) via 9f288d8c4d6c2233a8fdf1a7bcd8f63f96157b73 (commit) via 533c57ac5562844636dd83b3b3f80cc007ccf91c (commit) via d3b7a09dbdceec170479760cacdc5898090c90de (commit) via 16702cb5bf170d0d32cfae690176d8da23b0ad64 (commit) via eed69e81f7830269012517691a276c4dac57d6cf (commit) via 0f0d381ce87519fb5451ff93c0f8c5d0d7d57748 (commit) via cf3aaa01b620da6f2bc25df23ad2c129d650ea43 (commit) via a0002111f4f41d8d292400257c2ccf2707659bb4 (commit) via 16c2b11d02f5c76ff2b5735b8387771a1c5094d4 (commit) via d905533519ffe68ec05d07d09f1f70d6d1b491a6 (commit) via 4fbb34a163a6b4aba4935e1fbd2d31b11c30198a (commit) via bde4740691276d71ef50653350a67823229bacc6 (commit) via f78fe4715f39df3aef59d13a1d2e31d62f4da9cc (commit) via 7f77562ed4969cb793fb38f0a174c89df41ca6e7 (commit) via 74ff9da52c9acee25e0aeae417e44d483f645e91 (commit) via 994e9549e9bf0b92c6a046685c9622e7f279b574 (commit) via dc5540a0ac7a0fb9f923abde540546628f6fb082 (commit) via d912f56b1d87560c0712310ca1978217ac9757c8 (commit) via addebaf68180c001973a9f43b157d202a309b394 (commit) via 96a0e78c553dabb933d9263bbc78ad05731545a3 (commit) via 06db20e7ea4d18bc9b7ae347625bfd284509ed85 (commit) via 6f07a40cc29b4b9ebc69a3badc31de7497ae6253 (commit) via 257b08b35ceea41bad5a7f1c626496cf111e657a (commit) via 27a7923236030fed0272cc9072f0cde62496e91d (commit) via bfa24c0b7f035a84dd30e161673e97df244a926f (commit) via 7f80bdf3a851c1b37e5826327ab5415ac5abe7a4 (commit) via f74f2facaa16b35618c220f5652dbdb295c527e1 (commit) via eeb098456bc51314cd6520d05f82f92353ba4a02 (commit) via 379d527e891e1ad246b0bb796e6fc938618758c4 (commit) via 637a332968967672395f1d41d809d0eba8d8dbd1 (commit) via 24847c049d1a3ead549f0ccb5c7da5fbdedaa794 (commit) via 70217ce609bd28e1982ec9caae2b4d91fca4074d (commit) via e2023d4f1767d2358c97bc4aab4b21086dba1421 (commit) via 72aa3ae9e181a90718b42da85561638cf7f3d480 (commit) from af7be638ef9ac98bdb1f2e4917f152889eb1850f (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 4b1101adedf0941f6db34047cc06fde11fb06a34 Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Wed Feb 14 11:03:14 2018 +0300
linux-gen: pktio: loop: adapt to packet flags internal changes
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c index 6b531c08..7fc0fd61 100644 --- a/platform/linux-generic/pktio/loop.c +++ b/platform/linux-generic/pktio/loop.c @@ -156,7 +156,7 @@ static int loopback_recv(pktio_entry_t *pktio_entry, int index ODP_UNUSED,
/* Try IPsec inline processing */ if (pktio_entry->s.config.inbound_ipsec && - !pkt_hdr->p.error_flags.ip_err && + !pkt_hdr->p.flags.ip_err && _odp_packet_has_ipsec(pkt)) _odp_ipsec_try_inline(&pkt);
commit 9e8f9bc4ad6f07520c313d64e758b3eac3724a0b Merge: af7be638 41b3fa2c Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Wed Feb 14 10:57:54 2018 +0300
Merge remote-tracking branch 'origin/master' into HEAD
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org
diff --cc platform/linux-generic/include/odp/api/plat/packet_inline_types.h index e8ebdabb,984783d5..2e8efecb --- a/platform/linux-generic/include/odp/api/plat/packet_inline_types.h +++ b/platform/linux-generic/include/odp/api/plat/packet_inline_types.h @@@ -48,56 -61,55 +48,55 @@@ typedef struct _odp_packet_inline_offse
} _odp_packet_inline_offset_t;
-/** @internal Packet input & protocol flags */ +/* Packet input & protocol flags */ typedef union { - /** All input flags */ + /* All input flags */ uint64_t all;
- /** Individual input flags */ + /* Individual input flags */ struct { - uint64_t dst_queue:1; /**< Dst queue present */ + uint64_t dst_queue:1; /* Dst queue present */
- uint64_t flow_hash:1; /**< Flow hash present */ - uint64_t timestamp:1; /**< Timestamp present */ + uint64_t flow_hash:1; /* Flow hash present */ + uint64_t timestamp:1; /* Timestamp present */
- uint64_t l2:1; /**< known L2 protocol present */ - uint64_t l3:1; /**< known L3 protocol present */ - uint64_t l4:1; /**< known L4 protocol present */ + uint64_t l2:1; /* known L2 protocol present */ + uint64_t l3:1; /* known L3 protocol present */ + uint64_t l4:1; /* known L4 protocol present */
- uint64_t eth:1; /**< Ethernet */ - uint64_t eth_bcast:1; /**< Ethernet broadcast */ - uint64_t eth_mcast:1; /**< Ethernet multicast */ - uint64_t jumbo:1; /**< Jumbo frame */ - uint64_t vlan:1; /**< VLAN hdr found */ - uint64_t vlan_qinq:1; /**< Stacked VLAN found, QinQ */ + uint64_t eth:1; /* Ethernet */ + uint64_t eth_bcast:1; /* Ethernet broadcast */ + uint64_t eth_mcast:1; /* Ethernet multicast */ + uint64_t jumbo:1; /* Jumbo frame */ + uint64_t vlan:1; /* VLAN hdr found */ + uint64_t vlan_qinq:1; /* Stacked VLAN found, QinQ */
- uint64_t snap:1; /**< SNAP */ - uint64_t arp:1; /**< ARP */ + uint64_t snap:1; /* SNAP */ + uint64_t arp:1; /* ARP */
- uint64_t ipv4:1; /**< IPv4 */ - uint64_t ipv6:1; /**< IPv6 */ - uint64_t ip_bcast:1; /**< IP broadcast */ - uint64_t ip_mcast:1; /**< IP multicast */ - uint64_t ipfrag:1; /**< IP fragment */ - uint64_t ipopt:1; /**< IP optional headers */ + uint64_t ipv4:1; /* IPv4 */ + uint64_t ipv6:1; /* IPv6 */ + uint64_t ip_bcast:1; /* IP broadcast */ + uint64_t ip_mcast:1; /* IP multicast */ + uint64_t ipfrag:1; /* IP fragment */ + uint64_t ipopt:1; /* IP optional headers */
- uint64_t ipsec:1; /**< IPSec packet. Required by the + uint64_t ipsec:1; /* IPSec packet. Required by the odp_packet_has_ipsec_set() func. */ - uint64_t ipsec_ah:1; /**< IPSec authentication header */ - uint64_t ipsec_esp:1; /**< IPSec encapsulating security + uint64_t ipsec_ah:1; /* IPSec authentication header */ + uint64_t ipsec_esp:1; /* IPSec encapsulating security payload */ - uint64_t udp:1; /**< UDP */ - uint64_t tcp:1; /**< TCP */ - uint64_t sctp:1; /**< SCTP */ - uint64_t icmp:1; /**< ICMP */ + uint64_t udp:1; /* UDP */ + uint64_t tcp:1; /* TCP */ - uint64_t tcpopt:1; /* TCP options present */ + uint64_t sctp:1; /* SCTP */ + uint64_t icmp:1; /* ICMP */
- uint64_t color:2; /**< Packet color for traffic mgmt */ - uint64_t nodrop:1; /**< Drop eligibility status */ + uint64_t color:2; /* Packet color for traffic mgmt */ + uint64_t nodrop:1; /* Drop eligibility status */
- uint64_t l3_chksum_done:1; /**< L3 checksum validation done */ - uint64_t l4_chksum_done:1; /**< L4 checksum validation done */ - uint64_t ipsec_udp:1; /**< UDP-encapsulated IPsec packet */ + uint64_t l3_chksum_done:1; /* L3 checksum validation done */ + uint64_t l4_chksum_done:1; /* L4 checksum validation done */ + uint64_t ipsec_udp:1; /* UDP-encapsulated IPsec packet */ };
} _odp_packet_input_flags_t; diff --cc platform/linux-generic/include/odp/api/plat/packet_inlines.h index fe22d70a,0704abb2..b6b49336 --- a/platform/linux-generic/include/odp/api/plat/packet_inlines.h +++ b/platform/linux-generic/include/odp/api/plat/packet_inlines.h @@@ -99,16 -102,8 +102,15 @@@ static inline int _odp_packet_num_segs( return _odp_pkt_get(pkt, uint8_t, segcount); }
- /** @internal Inline function @param pkt @return */ static inline void *_odp_packet_user_ptr(odp_packet_t pkt) { + _odp_packet_flags_t flags; + + flags.all_flags = _odp_pkt_get(pkt, uint32_t, flags); + + if (flags.user_ptr_set == 0) + return NULL; + return _odp_pkt_get(pkt, void *, user_ptr); }
diff --cc platform/linux-generic/odp_crypto.c index 5579ade5,325a9d06..46cc8364 --- a/platform/linux-generic/odp_crypto.c +++ b/platform/linux-generic/odp_crypto.c @@@ -1933,8 -1520,8 +1933,8 @@@ int odp_crypto_int(odp_packet_t pkt_in (rc_cipher == ODP_CRYPTO_ALG_ERR_NONE) && (rc_auth == ODP_CRYPTO_ALG_ERR_NONE);
- pkt_hdr = odp_packet_hdr(out_pkt); + pkt_hdr = packet_hdr(out_pkt); - pkt_hdr->p.error_flags.crypto_err = !op_result->ok; + pkt_hdr->p.flags.crypto_err = !op_result->ok;
/* Synchronous, simply return results */ *pkt_out = out_pkt; diff --cc platform/linux-generic/odp_ipsec.c index 65be5aff,0ef8b88a..3e6a8098 --- a/platform/linux-generic/odp_ipsec.c +++ b/platform/linux-generic/odp_ipsec.c @@@ -831,8 -829,8 +831,8 @@@ static ipsec_sa_t *ipsec_in_single(odp_ return ipsec_sa;
err: - pkt_hdr = odp_packet_hdr(pkt); + pkt_hdr = packet_hdr(pkt); - pkt_hdr->p.error_flags.ipsec_err = 1; + pkt_hdr->p.flags.ipsec_err = 1;
*pkt_out = pkt;
@@@ -1407,9 -1404,9 +1407,9 @@@ static ipsec_sa_t *ipsec_out_single(odp return ipsec_sa;
err: - pkt_hdr = odp_packet_hdr(pkt); + pkt_hdr = packet_hdr(pkt);
- pkt_hdr->p.error_flags.ipsec_err = 1; + pkt_hdr->p.flags.ipsec_err = 1;
*pkt_out = pkt; return ipsec_sa; diff --cc platform/linux-generic/odp_packet.c index dc16e9be,b2a22903..82001103 --- a/platform/linux-generic/odp_packet.c +++ b/platform/linux-generic/odp_packet.c @@@ -1254,22 -1269,9 +1269,17 @@@ void *odp_packet_offset(odp_packet_t pk * */
- int odp_packet_input_index(odp_packet_t pkt) - { - return odp_pktio_index(packet_hdr(pkt)->input); - } - -void odp_packet_user_ptr_set(odp_packet_t pkt, const void *ctx) +void odp_packet_user_ptr_set(odp_packet_t pkt, const void *ptr) { - packet_hdr(pkt)->buf_hdr.buf_cctx = ctx; + odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt); + + if (odp_unlikely(ptr == NULL)) { + pkt_hdr->p.flags.user_ptr_set = 0; + return; + } + + pkt_hdr->buf_hdr.user_ptr = ptr; + pkt_hdr->p.flags.user_ptr_set = 1; }
int odp_packet_l2_offset_set(odp_packet_t pkt, uint32_t offset) @@@ -1992,11 -1952,12 +1957,12 @@@ static inline uint16_t parse_eth(packet *parseptr += sizeof(*eth);
/* Check for SNAP vs. DIX */ - if (ethtype < _ODP_ETH_LEN_MAX) { - prs->input_flags.snap = 1; + if (odp_unlikely(ethtype < _ODP_ETH_LEN_MAX)) { + input_flags.snap = 1; if (ethtype > frame_len - *offset) { - prs->error_flags.snap_len = 1; + prs->flags.snap_len_err = 1; - return 0; + ethtype = 0; + goto error; } ethtype = _odp_be_to_cpu_16(*((const uint16_t *)(uintptr_t) (parseptr + 6))); @@@ -2033,16 -1997,16 +2002,16 @@@ static inline uint8_t parse_ipv4(packet uint32_t *offset, uint32_t frame_len) { const _odp_ipv4hdr_t *ipv4 = (const _odp_ipv4hdr_t *)*parseptr; - uint8_t ver = _ODP_IPV4HDR_VER(ipv4->ver_ihl); - uint8_t ihl = _ODP_IPV4HDR_IHL(ipv4->ver_ihl); - uint16_t frag_offset; uint32_t dstaddr = _odp_be_to_cpu_32(ipv4->dst_addr); uint32_t l3_len = _odp_be_to_cpu_16(ipv4->tot_len); + uint16_t frag_offset = _odp_be_to_cpu_16(ipv4->frag_offset); + uint8_t ver = _ODP_IPV4HDR_VER(ipv4->ver_ihl); + uint8_t ihl = _ODP_IPV4HDR_IHL(ipv4->ver_ihl);
- if (odp_unlikely(ihl < _ODP_IPV4HDR_IHL_MIN) || - odp_unlikely(ver != 4) || - (l3_len > frame_len - *offset)) { + if (odp_unlikely(ihl < _ODP_IPV4HDR_IHL_MIN || + ver != 4 || + (l3_len > frame_len - *offset))) { - prs->error_flags.ip_err = 1; + prs->flags.ip_err = 1; return 0; }
@@@ -2134,19 -2100,15 +2105,15 @@@ static inline uint8_t parse_ipv6(packet /** * Parser helper function for TCP */ - static inline void parse_tcp(packet_parser_t *prs, - const uint8_t **parseptr, uint32_t *offset) + static inline void parse_tcp(packet_parser_t *prs, const uint8_t **parseptr) { const _odp_tcphdr_t *tcp = (const _odp_tcphdr_t *)*parseptr; + uint32_t len = tcp->hl * 4;
- if (tcp->hl < sizeof(_odp_tcphdr_t) / sizeof(uint32_t)) + if (odp_unlikely(tcp->hl < sizeof(_odp_tcphdr_t) / sizeof(uint32_t))) - prs->error_flags.tcp_err = 1; + prs->flags.tcp_err = 1; - else if ((uint32_t)tcp->hl * 4 > sizeof(_odp_tcphdr_t)) - prs->input_flags.tcpopt = 1;
- if (offset) - *offset += (uint32_t)tcp->hl * 4; - *parseptr += (uint32_t)tcp->hl * 4; + *parseptr += len; }
/** @@@ -2157,12 -2118,12 +2123,12 @@@ static inline void parse_udp(packet_par { const _odp_udphdr_t *udp = (const _odp_udphdr_t *)*parseptr; uint32_t udplen = _odp_be_to_cpu_16(udp->length); + uint16_t ipsec_port = _odp_cpu_to_be_16(_ODP_UDP_IPSEC_PORT);
if (odp_unlikely(udplen < sizeof(_odp_udphdr_t))) - prs->error_flags.udp_err = 1; + prs->flags.udp_err = 1;
- if (_odp_cpu_to_be_16(_ODP_UDP_IPSEC_PORT) == udp->dst_port && - udplen > 4) { + if (odp_unlikely(ipsec_port == udp->dst_port && udplen > 4)) { uint32_t val;
memcpy(&val, udp + 1, 4); @@@ -2187,8 -2146,8 +2151,8 @@@ int packet_parse_common_l3_l4(packet_pa
prs->l3_offset = offset;
- if (layer <= ODP_PROTO_LAYER_L2) + if (odp_unlikely(layer <= ODP_PROTO_LAYER_L2)) - return prs->error_flags.all != 0; + return prs->flags.all.error != 0;
/* Set l3 flag only for known ethtypes */ prs->input_flags.l3 = 1; diff --cc platform/linux-generic/odp_packet_flags.c index 0c33666e,2909703f..efd564d0 --- a/platform/linux-generic/odp_packet_flags.c +++ b/platform/linux-generic/odp_packet_flags.c @@@ -22,19 -22,21 +22,19 @@@
int odp_packet_has_error(odp_packet_t pkt) { - odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt); + odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt);
- return pkt_hdr->p.error_flags.all != 0; + return pkt_hdr->p.flags.all.error != 0; }
/* Get Input Flags */
int odp_packet_has_l2_error(odp_packet_t pkt) { - odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt); + odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt); /* L2 parsing is always done by default and hence no additional check is required */ - return pkt_hdr->p.error_flags.frame_len - | pkt_hdr->p.error_flags.snap_len - | pkt_hdr->p.error_flags.l2_chksum; + return pkt_hdr->p.flags.snap_len_err; }
int odp_packet_has_l3(odp_packet_t pkt) @@@ -44,9 -46,9 +44,9 @@@
int odp_packet_has_l3_error(odp_packet_t pkt) { - odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt); + odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt);
- return pkt_hdr->p.error_flags.ip_err; + return pkt_hdr->p.flags.ip_err; }
int odp_packet_has_l4(odp_packet_t pkt) @@@ -56,9 -58,9 +56,9 @@@
int odp_packet_has_l4_error(odp_packet_t pkt) { - odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt); + odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt);
- return pkt_hdr->p.error_flags.tcp_err | pkt_hdr->p.error_flags.udp_err; + return pkt_hdr->p.flags.tcp_err | pkt_hdr->p.flags.udp_err; }
int odp_packet_has_eth_bcast(odp_packet_t pkt) @@@ -172,9 -174,9 +172,9 @@@ int8_t odp_packet_shaper_len_adjust(odp
void odp_packet_shaper_len_adjust_set(odp_packet_t pkt, int8_t adj) { - odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt); + odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt);
- pkt_hdr->p.output_flags.shaper_len_adj = adj; + pkt_hdr->p.flags.shaper_len_adj = adj; }
/* Set Input Flags */
-----------------------------------------------------------------------
Summary of changes: .shippable.yml | 31 ++- configure.ac | 2 +- helper/include/odp/helper/strong_types.h | 4 +- include/odp/api/abi-default/buffer.h | 2 +- include/odp/api/abi-default/event.h | 2 +- include/odp/api/abi-default/packet.h | 2 +- platform/Makefile.inc | 6 + platform/linux-generic/Makefile.am | 4 + .../linux-generic/include-abi/odp/api/abi/buffer.h | 2 +- .../linux-generic/include-abi/odp/api/abi/event.h | 2 +- .../include-abi/odp/api/abi/packet_io.h | 4 + .../include/odp/api/plat/packet_flag_inlines.h | 9 + .../include/odp/api/plat/packet_inline_types.h | 1 - .../include/odp/api/plat/packet_inlines.h | 120 +++++++--- .../include/odp/api/plat/packet_inlines_api.h | 38 +++ .../include/odp/api/plat/pktio_inlines.h | 27 +++ .../include/odp/api/plat/pktio_inlines_api.h | 31 +++ .../include/odp/api/plat/strong_types.h | 4 +- .../linux-generic/include/odp_bitmap_internal.h | 4 +- .../linux-generic/include/odp_ipsec_internal.h | 2 +- .../linux-generic/include/odp_macros_internal.h | 54 +++++ .../linux-generic/include/odp_packet_internal.h | 15 +- .../linux-generic/include/odp_packet_io_internal.h | 13 +- .../include/odp_traffic_mngr_internal.h | 3 - platform/linux-generic/odp_crypto.c | 4 +- platform/linux-generic/odp_ipsec.c | 16 +- platform/linux-generic/odp_name_table.c | 15 +- platform/linux-generic/odp_packet.c | 263 +++++++++------------ platform/linux-generic/odp_packet_flags.c | 22 +- platform/linux-generic/odp_packet_io.c | 21 +- platform/linux-generic/odp_pkt_queue.c | 8 +- .../{odp_thread_api.c => odp_pktio_api.c} | 7 +- platform/linux-generic/odp_timer_wheel.c | 3 +- platform/linux-generic/odp_traffic_mngr.c | 37 +-- platform/linux-generic/pktio/dpdk.c | 48 ++-- platform/linux-generic/pktio/ipc.c | 14 +- platform/linux-generic/pktio/loop.c | 8 +- platform/linux-generic/pktio/netmap.c | 6 +- platform/linux-generic/pktio/pcap.c | 7 +- platform/linux-generic/pktio/socket.c | 2 +- platform/linux-generic/pktio/socket_mmap.c | 9 +- platform/linux-generic/pktio/tap.c | 7 +- scripts/Dockerfile | 1 + scripts/shippable-post.sh | 9 + test/performance/odp_l2fwd.c | 10 +- test/validation/api/pktio/pktio.c | 4 +- test/validation/api/shmem/shmem.c | 2 +- 47 files changed, 547 insertions(+), 358 deletions(-) create mode 100644 platform/linux-generic/include/odp/api/plat/pktio_inlines.h create mode 100644 platform/linux-generic/include/odp/api/plat/pktio_inlines_api.h create mode 100644 platform/linux-generic/include/odp_macros_internal.h copy platform/linux-generic/{odp_thread_api.c => odp_pktio_api.c} (60%) create mode 100755 scripts/shippable-post.sh
hooks/post-receive