X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fip%2Fip6_packet.h;h=ceaa7ec7accec8e498e9561057a44c31fc3b104d;hb=d0df49f2;hp=a02f8b2ea8e474b8a786c5297cce0a6f9cdf4773;hpb=31ed74407643595fdce206e9d7487108fb8b33ab;p=vpp.git diff --git a/src/vnet/ip/ip6_packet.h b/src/vnet/ip/ip6_packet.h index a02f8b2ea8e..ceaa7ec7acc 100644 --- a/src/vnet/ip/ip6_packet.h +++ b/src/vnet/ip/ip6_packet.h @@ -53,6 +53,11 @@ typedef union } ip6_address_t; +typedef struct +{ + ip6_address_t addr, mask; +} ip6_address_and_mask_t; + /* Packed so that the mhash key doesn't include uninitialized pad bytes */ /* *INDENT-OFF* */ typedef CLIB_PACKED (struct { @@ -62,6 +67,13 @@ typedef CLIB_PACKED (struct { }) ip6_address_fib_t; /* *INDENT-ON* */ +typedef enum +{ + IP46_TYPE_ANY, + IP46_TYPE_IP4, + IP46_TYPE_IP6 +} ip46_type_t; + /* *INDENT-OFF* */ typedef CLIB_PACKED (union { struct { @@ -81,6 +93,7 @@ typedef CLIB_PACKED (union { #define ip46_address_is_zero(ip46) (((ip46)->as_u64[0] == 0) && ((ip46)->as_u64[1] == 0)) #define ip46_address_is_equal(a1, a2) (((a1)->as_u64[0] == (a2)->as_u64[0]) \ && ((a1)->as_u64[1] == (a2)->as_u64[1])) +#define ip46_address_initializer {{{ 0 }}} always_inline ip46_address_t to_ip46 (u32 is_ipv6, u8 * buf) @@ -359,6 +372,7 @@ ip6_set_traffic_class_network_order (ip6_header_t * ip6, u8 dscp) { u32 tmp = clib_net_to_host_u32 (ip6->ip_version_traffic_class_and_flow_label); + tmp &= 0xf00fffff; tmp |= (dscp << 20); ip6->ip_version_traffic_class_and_flow_label = clib_host_to_net_u32 (tmp); }