X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fmfib%2Fmfib_types.h;h=58b7c987ab70931bc83879328d6d09e01198efb4;hb=61b94c6bc417dbcb11323962b40493e6f7ec2f7e;hp=37898a07b00a31c4f81d0b294da90a2438cde58b;hpb=32e1c010b0c34fd0984f7fc45fae648a182025c5;p=vpp.git diff --git a/src/vnet/mfib/mfib_types.h b/src/vnet/mfib/mfib_types.h index 37898a07b00..58b7c987ab7 100644 --- a/src/vnet/mfib/mfib_types.h +++ b/src/vnet/mfib/mfib_types.h @@ -68,6 +68,13 @@ typedef enum mfib_entry_attribute_t_ * Use with extreme caution */ MFIB_ENTRY_ACCEPT_ALL_ITF, + /** + * Exclusive - like its unicast counterpart. the source has provided + * the forwarding DPO directly. The entry therefore does not resolve + * paths via a path-list + */ + MFIB_ENTRY_EXCLUSIVE, + MFIB_ENTRY_INHERIT_ACCEPT, MFIB_ENTRY_ATTRIBUTE_LAST = MFIB_ENTRY_INHERIT_ACCEPT, } mfib_entry_attribute_t; @@ -83,6 +90,7 @@ typedef enum mfib_entry_attribute_t_ [MFIB_ENTRY_DROP] = "D", \ [MFIB_ENTRY_ACCEPT_ALL_ITF] = "AA", \ [MFIB_ENTRY_INHERIT_ACCEPT] = "IA", \ + [MFIB_ENTRY_EXCLUSIVE] = "E", \ } #define MFIB_ENTRY_NAMES_LONG { \ @@ -91,6 +99,7 @@ typedef enum mfib_entry_attribute_t_ [MFIB_ENTRY_DROP] = "Drop", \ [MFIB_ENTRY_ACCEPT_ALL_ITF] = "Accept-all-itf", \ [MFIB_ENTRY_INHERIT_ACCEPT] = "Inherit-Accept", \ + [MFIB_ENTRY_EXCLUSIVE] = "Exclusive", \ } typedef enum mfib_entry_flags_t_ @@ -99,8 +108,9 @@ typedef enum mfib_entry_flags_t_ MFIB_ENTRY_FLAG_SIGNAL = (1 << MFIB_ENTRY_SIGNAL), MFIB_ENTRY_FLAG_DROP = (1 << MFIB_ENTRY_DROP), MFIB_ENTRY_FLAG_CONNECTED = (1 << MFIB_ENTRY_CONNECTED), - MFIB_ENTRY_FLAG_INHERIT_ACCEPT = (1 << MFIB_ENTRY_INHERIT_ACCEPT), MFIB_ENTRY_FLAG_ACCEPT_ALL_ITF = (1 << MFIB_ENTRY_ACCEPT_ALL_ITF), + MFIB_ENTRY_FLAG_EXCLUSIVE = (1 << MFIB_ENTRY_EXCLUSIVE), + MFIB_ENTRY_FLAG_INHERIT_ACCEPT = (1 << MFIB_ENTRY_INHERIT_ACCEPT), } mfib_entry_flags_t; typedef enum mfib_itf_attribute_t_ @@ -151,22 +161,40 @@ typedef enum mfib_itf_flags_t_ typedef enum mfib_source_t_ { MFIB_SOURCE_SPECIAL, + MFIB_SOURCE_6RD, MFIB_SOURCE_API, MFIB_SOURCE_CLI, MFIB_SOURCE_VXLAN, MFIB_SOURCE_DHCP, + MFIB_SOURCE_SRv6, + MFIB_SOURCE_GTPU, + MFIB_SOURCE_VXLAN_GPE, + MFIB_SOURCE_RR, + MFIB_SOURCE_GENEVE, + MFIB_SOURCE_IGMP, + MFIB_SOURCE_VXLAN_GBP, MFIB_SOURCE_DEFAULT_ROUTE, } mfib_source_t; #define MFIB_SOURCE_NAMES { \ [MFIB_SOURCE_SPECIAL] = "Special", \ + [MFIB_SOURCE_6RD] = "6RD", \ [MFIB_SOURCE_API] = "API", \ [MFIB_SOURCE_CLI] = "CLI", \ [MFIB_SOURCE_DHCP] = "DHCP", \ [MFIB_SOURCE_VXLAN] = "VXLAN", \ + [MFIB_SOURCE_SRv6] = "SRv6", \ + [MFIB_SOURCE_GTPU] = "GTPU", \ + [MFIB_SOURCE_VXLAN_GPE] = "VXLAN-GPE", \ + [MFIB_SOURCE_RR] = "Recursive-resolution", \ + [MFIB_SOURCE_GENEVE] = "Geneve", \ + [MFIB_SOURCE_IGMP] = "IGMP", \ + [MFIB_SOURCE_VXLAN_GBP] = "VXLAN-GBP", \ [MFIB_SOURCE_DEFAULT_ROUTE] = "Default Route", \ } +#define MFIB_N_SOURCES (MFIB_SOURCE_DEFAULT_ROUTE) + /** * \brief Compare two prefixes for equality */