diff options
author | Neale Ranns <neale.ranns@cisco.com> | 2020-11-26 14:15:33 +0000 |
---|---|---|
committer | Neale Ranns <nranns@cisco.com> | 2020-11-27 12:25:23 +0000 |
commit | 6dc0c8d14745e1d55f62415a3a40454ff820d9ad (patch) | |
tree | 6e17a5281606a770ebe25a7573f467f7500a12d3 /src/vnet/ip/ip_types.h | |
parent | 633122e1fd06a3f09e3cd08732fc49b5d0028221 (diff) |
ip: Sub Address Family types. Feature enable for each SAFI
Type: improvement
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Change-Id: I318424ffa569d9a09187066d6ba15576757c1cf6
Diffstat (limited to 'src/vnet/ip/ip_types.h')
-rw-r--r-- | src/vnet/ip/ip_types.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/vnet/ip/ip_types.h b/src/vnet/ip/ip_types.h index f779fe7e864..fa1f0fe0952 100644 --- a/src/vnet/ip/ip_types.h +++ b/src/vnet/ip/ip_types.h @@ -38,9 +38,43 @@ extern fib_protocol_t ip_address_family_to_fib_proto (ip_address_family_t af); extern ip_address_family_t ip_address_family_from_fib_proto (fib_protocol_t fp); +typedef enum ip_sub_address_family_t_ +{ + SAFI_UNICAST, + SAFI_MULTICAST, +} __clib_packed ip_sub_address_family_t; + +#define N_SAFI (SAFI_MULTICAST+1) + +extern uword unformat_ip_sub_address_family (unformat_input_t * input, + va_list * args); +extern u8 *format_ip_sub_address_family (u8 * s, va_list * args); + +#define FOR_EACH_IP_ADDRESS_SUB_FAMILY(_safi) \ + for (_safi = SAFI_UNICAST; _safi <= SAFI_MULTICAST; _safi++) + #define u8_ptr_add(ptr, index) (((u8 *)ptr) + index) #define u16_net_add(u, val) clib_host_to_net_u16(clib_net_to_host_u16(u) + (val)) +/** + * Locations in the IP switch path where features can be applied + */ +#define foreach_ip_feature_location \ + _(INPUT, "input") \ + _(OUTPUT, "output") \ + _(LOCAL, "local") \ + _(PUNT, "punt") \ + _(DROP, "drop") \ + +typedef enum ip_feature_location_t_ +{ +#define _(a,b) IP_FEATURE_##a, + foreach_ip_feature_location +#undef _ +} __clib_packed ip_feature_location_t; + +#define N_IP_FEATURE_LOCATIONS (IP_FEATURE_DROP+1) + /* *INDENT-OFF* */ typedef struct ip_address { |