On 17.02.2019 16:44, Asaf Penso wrote: > > > Regards, > Asaf Penso > >> -----Original Message----- >> From: ovs-dev-boun...@openvswitch.org <ovs-dev- >> boun...@openvswitch.org> On Behalf Of Flavio Leitner >> Sent: Friday, February 15, 2019 8:59 PM >> To: Ilya Maximets <i.maxim...@samsung.com> >> Cc: ovs-dev@openvswitch.org; Roni Bar Yanai <ron...@mellanox.com> >> Subject: Re: [ovs-dev] [PATCH v4 4/9] dp-packet: Add flow_mark support for >> non-DPDK case. >> >> On Fri, Feb 15, 2019 at 04:07:03PM +0300, Ilya Maximets wrote: >>> Additionally, new API call 'dp_packet_set_flow_mark' is needed for >>> packet clone. Mostly for dummy HWOL implementation. >>> >>> Signed-off-by: Ilya Maximets <i.maxim...@samsung.com> >>> --- >>> lib/dp-packet.h | 23 +++++++++++++++++++++-- >>> 1 file changed, 21 insertions(+), 2 deletions(-) >>> >>> diff --git a/lib/dp-packet.h b/lib/dp-packet.h index >>> 685edc90c..15c596a91 100644 >>> --- a/lib/dp-packet.h >>> +++ b/lib/dp-packet.h >>> @@ -60,7 +60,9 @@ struct dp_packet { >>> uint32_t size_; /* Number of bytes in use. */ >>> uint32_t ol_flags; /* Offloading flags. */ >>> #define DP_PACKET_OL_RSS_HASH_MASK 0x1 /* Is the 'rss_hash' valid? >> */ >>> +#define DP_PACKET_OL_FLOW_MARK_MASK 0x2 /* Is the 'flow_mark' >> valid? >>> +*/ >> >> Perhaps it's time for a enum? >> >> Otherwise it looks good to me. >> fbl >> > > I also think that enum is a good approach.
OK. I'll turn this to enum. > >> >>> uint32_t rss_hash; /* Packet hash. */ >>> + uint32_t flow_mark; /* Packet flow mark. */ >>> #endif >>> enum dp_packet_source source; /* Source of memory allocated as >>> 'base'. */ >>> >>> @@ -556,6 +558,13 @@ dp_packet_has_flow_mark(const struct >> dp_packet *p, uint32_t *mark) >>> return false; >>> } >>> >>> +static inline void >>> +dp_packet_set_flow_mark(struct dp_packet *p, uint32_t mark) { >>> + p->mbuf.hash.fdir.hi = mark; >>> + p->mbuf.ol_flags |= PKT_RX_FDIR_ID; } >>> + >>> #else /* DPDK_NETDEV */ >>> static inline void * >>> dp_packet_base(const struct dp_packet *b) @@ -657,11 +666,21 @@ >>> dp_packet_l4_checksum_bad(const struct dp_packet *p OVS_UNUSED) } >>> >>> static inline bool >>> -dp_packet_has_flow_mark(const struct dp_packet *p OVS_UNUSED, >>> - uint32_t *mark OVS_UNUSED) >>> +dp_packet_has_flow_mark(const struct dp_packet *p, uint32_t *mark) >>> { >>> + if (p->ol_flags & DP_PACKET_OL_FLOW_MARK_MASK) { >>> + *mark = p->flow_mark; >>> + return true; >>> + } >>> return false; >>> } >>> + >>> +static inline void >>> +dp_packet_set_flow_mark(struct dp_packet *p, uint32_t mark) { >>> + p->flow_mark = mark; >>> + p->ol_flags |= DP_PACKET_OL_FLOW_MARK_MASK; } >>> #endif /* DPDK_NETDEV */ >>> >>> static inline void >>> -- >>> 2.17.1 >>> >>> _______________________________________________ >>> dev mailing list >>> d...@openvswitch.org >>> >> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fma >> i >>> l.openvswitch.org%2Fmailman%2Flistinfo%2Fovs- >> dev&data=02%7C01%7Cas >>> >> afp%40mellanox.com%7C82821a54567740211aaf08d69377a00d%7Ca652971c7 >> d2e4d >>> >> 9ba6a4d149256f461b%7C0%7C0%7C636858539332346581&sdata=mEyH3 >> EnR9dIh >>> Rq5WxldGHJayVcnjp7RMdbqjiQXVaG8%3D&reserved=0 >> >> _______________________________________________ >> dev mailing list >> d...@openvswitch.org >> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fma >> il.openvswitch.org%2Fmailman%2Flistinfo%2Fovs- >> dev&data=02%7C01%7Casafp%40mellanox.com%7C82821a54567740211 >> aaf08d69377a00d%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C63 >> 6858539332356590&sdata=HK%2FlvDuDociyZG7K79kbjOQ0TOKr%2Bmk >> MIyHvlYZCj%2BI%3D&reserved=0 > > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev