On Thu, Jan 21, 2016 at 3:39 AM, Petri Savolainen < [email protected]> wrote:
> Added packet flags for Ethernet and IP broad- and multicast. > For application, it's more effective to check a flag than all > destionation address bits. > > Signed-off-by: Petri Savolainen <[email protected]> > --- > include/odp/api/packet_flags.h | 70 > +++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 69 insertions(+), 1 deletion(-) > > diff --git a/include/odp/api/packet_flags.h > b/include/odp/api/packet_flags.h > index 8de0c82..65fd3ce 100644 > --- a/include/odp/api/packet_flags.h > +++ b/include/odp/api/packet_flags.h > @@ -102,11 +102,29 @@ int odp_packet_has_l4(odp_packet_t pkt); > * > * @param pkt Packet handle > * @retval non-zero if packet contains a valid eth header > - * @retval 0 if packet does not contain a valid & known eth header > + * @retval 0 if packet does not contain a valid eth header > */ > int odp_packet_has_eth(odp_packet_t pkt); > > /** > + * Check for Ethernet broadcast address > + * > + * @param pkt Packet handle > + * @retval non-zero if Ethernet destination address is the broadcast > address > + * @retval 0 if Ethernet destination address is not the broadcast address > + */ > +int odp_packet_has_eth_bcast(odp_packet_t pkt); > + > +/** > + * Check for Ethernet multicast address > + * > + * @param pkt Packet handle > + * @retval non-zero if Ethernet destination address is a multicast address > + * @retval 0 if Ethernet destination address is not a multicast address > + */ > +int odp_packet_has_eth_mcast(odp_packet_t pkt); > + > +/** > * Check for jumbo frame > * > * @param pkt Packet handle > @@ -161,6 +179,24 @@ int odp_packet_has_ipv4(odp_packet_t pkt); > int odp_packet_has_ipv6(odp_packet_t pkt); > > /** > + * Check for IP broadcast address > + * > + * @param pkt Packet handle > + * @retval non-zero if IP destination address is a broadcast address > + * @retval 0 if IP destination address is not a broadcast address > + */ > +int odp_packet_has_ip_bcast(odp_packet_t pkt); > + > +/** > + * Check for IP multicast address > + * > + * @param pkt Packet handle > + * @retval non-zero if IP destination address is a multicast address > + * @retval 0 if IP destination address is not a multicast address > + */ > +int odp_packet_has_ip_mcast(odp_packet_t pkt); > + > Should there be an odp_packet_has_ip_anycast() API for completeness? > +/** > * Check for IP fragment > * > * @param pkt Packet handle > @@ -265,6 +301,22 @@ void odp_packet_has_l4_set(odp_packet_t pkt, int val); > void odp_packet_has_eth_set(odp_packet_t pkt, int val); > > /** > + * Set flag for Ethernet broadcast address > + * > + * @param pkt Packet handle > + * @param val Value > + */ > +void odp_packet_has_eth_bcast_set(odp_packet_t pkt, int val); > + > +/** > + * Set flag for Ethernet multicast address > + * > + * @param pkt Packet handle > + * @param val Value > + */ > +void odp_packet_has_eth_mcast_set(odp_packet_t pkt, int val); > + > +/** > * Set flag for jumbo frame > * > * @param pkt Packet handle > @@ -313,6 +365,22 @@ void odp_packet_has_ipv4_set(odp_packet_t pkt, int > val); > void odp_packet_has_ipv6_set(odp_packet_t pkt, int val); > > /** > + * Set flag for IP broadcast address > + * > + * @param pkt Packet handle > + * @param val Value > + */ > +void odp_packet_has_ip_bcast_set(odp_packet_t pkt, int val); > + > +/** > + * Set flag for IP multicast address > + * > + * @param pkt Packet handle > + * @param val Value > + */ > +void odp_packet_has_ip_mcast_set(odp_packet_t pkt, int val); > + > The query APIs for these attributes are fine, however given that these are encoded in the Ethernet/IP addresses I'm not sure that set variants make sense here. Wouldn't these be indirectly changing the Ethernet/IP address? Especially in the case of IPv6 these tend to follow complex rules that aren't simple booleans. > +/** > * Set flag for IP fragment > * > * @param pkt Packet handle > -- > 2.6.3 > > _______________________________________________ > lng-odp mailing list > [email protected] > https://lists.linaro.org/mailman/listinfo/lng-odp >
_______________________________________________ lng-odp mailing list [email protected] https://lists.linaro.org/mailman/listinfo/lng-odp
