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

Reply via email to