On 16 Sep 2022, at 12:12, Cian Ferriter wrote: > A typical NVGRE encapsulated packet starts with the ETH/IP/GRE > protocols. Miniflow extract will parse just the ETH and IP headers. The > GRE header will be processed later as part of the pop action. Add > support for parsing the ETH/IP headers in this scenario. > > Signed-off-by: Cian Ferriter <[email protected]> > --- > lib/dp-packet.h | 58 +++++++++++++++++++++++-------- > lib/dpif-netdev-extract-avx512.c | 43 +++++++++++++++++++++-- > lib/dpif-netdev-private-extract.c | 10 ++++++ > lib/dpif-netdev-private-extract.h | 5 +++ > 4 files changed, 100 insertions(+), 16 deletions(-) > > diff --git a/lib/dp-packet.h b/lib/dp-packet.h > index 55eeaab2c..230bbec27 100644
Only one small nit, maybe Ilya can change on commit if he finds no other issues. Acked-by: Eelco Chaudron <[email protected]> > --- a/lib/dp-packet.h > +++ b/lib/dp-packet.h > @@ -1089,8 +1089,28 @@ dp_packet_l4_checksum_bad(const struct dp_packet *p) > DP_PACKET_OL_RX_L4_CKSUM_BAD; > } > > +static inline uint32_t ALWAYS_INLINE > +dp_packet_calc_hash_ipv4(const uint8_t *pkt, const uint16_t l3_ofs, > + uint32_t hash) > +{ > + const void *ipv4_src = &pkt[l3_ofs + offsetof(struct ip_header, ip_src)]; > + const void *ipv4_dst = &pkt[l3_ofs + offsetof(struct ip_header, ip_dst)]; > + uint32_t ip_src, ip_dst; > + > + memcpy(&ip_src, ipv4_src, sizeof ip_src); > + memcpy(&ip_dst, ipv4_dst, sizeof ip_dst); > + > + /* IPv4 Src and Dst. */ > + hash = hash_add(hash, ip_src); > + hash = hash_add(hash, ip_dst); Add cr/lf before comments. > + /* IPv4 proto. */ > + hash = hash_add(hash, pkt[l3_ofs + offsetof(struct ip_header, > ip_proto)]); <SNIP> _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
