|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
16 #ifndef __MFIB_TYPES_H__
17 #define __MFIB_TYPES_H__
82 #define FOR_EACH_MFIB_ATTRIBUTE(_item) \
83 for (_item = MFIB_ENTRY_ATTRIBUTE_FIRST; \
84 _item <= MFIB_ENTRY_ATTRIBUTE_LAST; \
87 #define MFIB_ENTRY_NAMES_SHORT { \
88 [MFIB_ENTRY_SIGNAL] = "S", \
89 [MFIB_ENTRY_CONNECTED] = "C", \
90 [MFIB_ENTRY_DROP] = "D", \
91 [MFIB_ENTRY_ACCEPT_ALL_ITF] = "AA", \
92 [MFIB_ENTRY_INHERIT_ACCEPT] = "IA", \
93 [MFIB_ENTRY_EXCLUSIVE] = "E", \
96 #define MFIB_ENTRY_NAMES_LONG { \
97 [MFIB_ENTRY_SIGNAL] = "Signal", \
98 [MFIB_ENTRY_CONNECTED] = "Connected", \
99 [MFIB_ENTRY_DROP] = "Drop", \
100 [MFIB_ENTRY_ACCEPT_ALL_ITF] = "Accept-all-itf", \
101 [MFIB_ENTRY_INHERIT_ACCEPT] = "Inherit-Accept", \
102 [MFIB_ENTRY_EXCLUSIVE] = "Exclusive", \
127 #define FOR_EACH_MFIB_ITF_ATTRIBUTE(_item) \
128 for (_item = MFIB_ITF_ATTRIBUTE_FIRST; \
129 _item <= MFIB_ITF_ATTRIBUTE_LAST; \
132 #define MFIB_ITF_NAMES_SHORT { \
133 [MFIB_ITF_NEGATE_SIGNAL] = "NS", \
134 [MFIB_ITF_ACCEPT] = "A", \
135 [MFIB_ITF_FORWARD] = "F", \
136 [MFIB_ITF_SIGNAL_PRESENT] = "SP", \
137 [MFIB_ITF_DONT_PRESERVE] = "DP", \
140 #define MFIB_ITF_NAMES_LONG { \
141 [MFIB_ITF_NEGATE_SIGNAL] = "Negate-Signal", \
142 [MFIB_ITF_ACCEPT] = "Accept", \
143 [MFIB_ITF_FORWARD] = "Forward", \
144 [MFIB_ITF_SIGNAL_PRESENT] = "Signal-Present", \
145 [MFIB_ITF_DONT_PRESERVE] = "Don't-Preserve", \
180 #define MFIB_SOURCE_NAMES { \
181 [MFIB_SOURCE_SPECIAL] = "Special", \
182 [MFIB_SOURCE_6RD] = "6RD", \
183 [MFIB_SOURCE_API] = "API", \
184 [MFIB_SOURCE_CLI] = "CLI", \
185 [MFIB_SOURCE_DHCP] = "DHCP", \
186 [MFIB_SOURCE_VXLAN] = "VXLAN", \
187 [MFIB_SOURCE_SRv6] = "SRv6", \
188 [MFIB_SOURCE_GTPU] = "GTPU", \
189 [MFIB_SOURCE_VXLAN_GPE] = "VXLAN-GPE", \
190 [MFIB_SOURCE_GENEVE] = "Geneve", \
191 [MFIB_SOURCE_IGMP] = "IGMP", \
192 [MFIB_SOURCE_VXLAN_GBP] = "VXLAN-GBP", \
193 [MFIB_SOURCE_PLUGIN_LOW] = "plugin-low", \
194 [MFIB_SOURCE_RR] = "Recursive-resolution", \
195 [MFIB_SOURCE_DEFAULT_ROUTE] = "Default Route", \
198 #define FOREACH_MFIB_SOURCE(_ms) \
199 for (_ms = MFIB_SOURCE_SPECIAL; \
200 _ms <= MFIB_SOURCE_DEFAULT_ROUTE; \
203 #define MFIB_N_SOURCES (MFIB_SOURCE_DEFAULT_ROUTE + 1)
204 #define MFIB_SOURCE_NONE (MFIB_SOURCE_DEFAULT_ROUTE + 1)
@ MFIB_ENTRY_FLAG_EXCLUSIVE
int mfib_prefix_cmp(const mfib_prefix_t *p1, const mfib_prefix_t *p2)
Compare two prefixes for equality.
@ MFIB_ITF_SIGNAL_PRESENT
fib_forward_chain_type_t mfib_forw_chain_type_from_fib_proto(fib_protocol_t proto)
enum dpo_proto_t_ dpo_proto_t
Data path protocol.
@ MFIB_ENTRY_ATTRIBUTE_FIRST
u8 * format_mfib_prefix(u8 *s, va_list *args)
enum mfib_itf_attribute_t_ mfib_itf_attribute_t
Aggregate type for a prefix.
u16 fp_len
The mask length.
int mfib_prefix_is_host(const mfib_prefix_t *p)
Return true is the prefix is a host prefix.
@ MFIB_ENTRY_FLAG_INHERIT_ACCEPT
enum mfib_entry_flags_t_ mfib_entry_flags_t
fib_forward_chain_type_t mfib_forw_chain_type_from_dpo_proto(dpo_proto_t proto)
ip46_address_t fp_src_addr
enum mfib_source_t_ mfib_source_t
Possible [control plane] sources of MFIB entries.
enum fib_forward_chain_type_t_ fib_forward_chain_type_t
FIB output chain type.
uword unformat_mfib_itf_flags(unformat_input_t *input, va_list *args)
struct mfib_prefix_t_ mfib_prefix_t
Aggregate type for a prefix.
@ MFIB_ITF_ATTRIBUTE_LAST
@ MFIB_SOURCE_DEFAULT_ROUTE
u8 * format_mfib_entry_flags(u8 *s, va_list *args)
enum mfib_itf_flags_t_ mfib_itf_flags_t
mfib_source_t_
Possible [control plane] sources of MFIB entries.
enum fib_protocol_t_ fib_protocol_t
Protocol Type.
@ MFIB_ENTRY_FLAG_ACCEPT_ALL_ITF
fib_protocol_t fp_proto
protocol type
int mfib_prefix_is_cover(const mfib_prefix_t *p1, const mfib_prefix_t *p2)
Compare two prefixes for covering relationship.
@ MFIB_ITF_FLAG_DONT_PRESERVE
ip46_address_t fp_grp_addr
The address type is not deriveable from the fp_addr member.
@ MFIB_ENTRY_DROP
Drop all traffic to this route.
@ MFIB_ENTRY_SIGNAL
The control planes needs packets mathing this entry to generate a signal.
@ MFIB_ITF_ATTRIBUTE_FIRST
@ MFIB_ENTRY_INHERIT_ACCEPT
@ MFIB_ITF_FLAG_SIGNAL_PRESENT
@ MFIB_ENTRY_EXCLUSIVE
Exclusive - like its unicast counterpart.
enum mfib_entry_attribute_t_ mfib_entry_attribute_t
@ MFIB_ENTRY_CONNECTED
The control plane needs to be informed of coneected sources.
uword unformat_mfib_entry_flags(unformat_input_t *input, va_list *args)
@ MFIB_ENTRY_ACCEPT_ALL_ITF
Accept packets from any incpoming interface Use with extreme caution.
u8 * format_mfib_itf_flags(u8 *s, va_list *args)
@ MFIB_ENTRY_ATTRIBUTE_LAST
@ MFIB_ENTRY_FLAG_CONNECTED
@ MFIB_ITF_FLAG_NEGATE_SIGNAL