![]() |
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Include dependency graph for fib_types.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | fib_prefix_t_ |
| Aggregate type for a prefix. More... | |
| struct | fib_mpls_label_t_ |
| Configuration for each label value in the output-stack. More... | |
| struct | fib_route_path_t_ |
| A representation of a path as described by a route producer. More... | |
| struct | fib_path_ext_list_t_ |
| A list of path-extensions. More... | |
Macros | |
| #define | FIB_NODE_INDEX_INVALID ((fib_node_index_t)(~0)) |
| #define | FIB_PROTOCOLS |
| #define | FIB_PROTOCOL_MAX (FIB_PROTOCOL_MPLS + 1) |
| Definition outside of enum so it does not need to be included in non-defaulted switch statements. More... | |
| #define | FIB_PROTOCOL_IP_MAX (FIB_PROTOCOL_IP6 + 1) |
| Definition outside of enum so it does not need to be included in non-defaulted switch statements. More... | |
| #define | FIB_PROTOCOL_NONE (FIB_PROTOCOL_MAX+1) |
| Not part of the enum so it does not have to be handled in switch statements. More... | |
| #define | FOR_EACH_FIB_PROTOCOL(_item) |
| #define | FOR_EACH_FIB_IP_PROTOCOL(_item) |
| #define | FIB_FORW_CHAINS |
| #define | FIB_FORW_CHAIN_NUM (FIB_FORW_CHAIN_TYPE_NSH+1) |
| #define | FIB_FORW_CHAIN_MPLS_NUM (FIB_FORW_CHAIN_TYPE_MPLS_EOS+1) |
| #define | FOR_EACH_FIB_FORW_CHAIN(_item) |
| #define | FOR_EACH_FIB_FORW_MPLS_CHAIN(_item) |
| #define | FIB_SPEICAL_TYPE_MAX (FIB_SPEICAL_TYPE_LAST + 1) |
| The maximum number of types. More... | |
| #define | FOR_EACH_FIB_SPEICAL_TYPE(_item) |
| #define | MFIB_RPF_ID_NONE (0) |
| #define | FIB_MPLS_LSP_MODES |
| #define | FIB_ROUTE_PATH_HELP "[next-hop-address] [next-hop-interface] [next-hop-table <value>] [weight <value>] [preference <value>] [udp-encap-id <value>] [ip4-lookup-in-table <value>] [ip6-lookup-in-table <value>] [mpls-lookup-in-table <value>] [resolve-via-host] [resolve-via-connected] [rx-ip4 <interface>] [out-labels <value value value>]" |
| A help string to list the FIB path options. More... | |
Typedefs | |
| typedef u32 | fib_node_index_t |
| A typedef of a node index. More... | |
| typedef enum fib_protocol_t_ | fib_protocol_t |
| Protocol Type. More... | |
| typedef enum fib_forward_chain_type_t_ | fib_forward_chain_type_t |
| FIB output chain type. More... | |
| typedef struct fib_prefix_t_ | fib_prefix_t |
| Aggregate type for a prefix. More... | |
| typedef enum fib_special_type_t_ | fib_special_type_t |
| Enurmeration of special path/entry types. More... | |
| typedef enum fib_route_path_flags_t_ | fib_route_path_flags_t |
| Path flags from the control plane. More... | |
| typedef u32 | fib_rpf_id_t |
| An RPF-ID is numerical value that is used RPF validate. More... | |
| typedef enum fib_mpls_lsp_mode_t_ | fib_mpls_lsp_mode_t |
| MPLS LSP mode - only valid at the head and tail. More... | |
| typedef struct fib_mpls_label_t_ | fib_mpls_label_t |
| Configuration for each label value in the output-stack. More... | |
| typedef struct fib_route_path_t_ | fib_route_path_t |
| A representation of a path as described by a route producer. More... | |
| typedef enum fib_path_list_walk_rc_t_ | fib_path_list_walk_rc_t |
| return code to control pat-hlist walk More... | |
| typedef struct fib_path_ext_list_t_ | fib_path_ext_list_t |
| A list of path-extensions. More... | |
| #define FIB_FORW_CHAIN_MPLS_NUM (FIB_FORW_CHAIN_TYPE_MPLS_EOS+1) |
Definition at line 162 of file fib_types.h.
| #define FIB_FORW_CHAIN_NUM (FIB_FORW_CHAIN_TYPE_NSH+1) |
Definition at line 161 of file fib_types.h.
| #define FIB_FORW_CHAINS |
Definition at line 149 of file fib_types.h.
| #define FIB_MPLS_LSP_MODES |
Definition at line 442 of file fib_types.h.
| #define FIB_NODE_INDEX_INVALID ((fib_node_index_t)(~0)) |
Definition at line 30 of file fib_types.h.
| #define FIB_PROTOCOL_IP_MAX (FIB_PROTOCOL_IP6 + 1) |
Definition outside of enum so it does not need to be included in non-defaulted switch statements.
Definition at line 57 of file fib_types.h.
| #define FIB_PROTOCOL_MAX (FIB_PROTOCOL_MPLS + 1) |
Definition outside of enum so it does not need to be included in non-defaulted switch statements.
Definition at line 51 of file fib_types.h.
| #define FIB_PROTOCOL_NONE (FIB_PROTOCOL_MAX+1) |
Not part of the enum so it does not have to be handled in switch statements.
Definition at line 62 of file fib_types.h.
| #define FIB_PROTOCOLS |
Definition at line 41 of file fib_types.h.
| #define FIB_ROUTE_PATH_HELP "[next-hop-address] [next-hop-interface] [next-hop-table <value>] [weight <value>] [preference <value>] [udp-encap-id <value>] [ip4-lookup-in-table <value>] [ip6-lookup-in-table <value>] [mpls-lookup-in-table <value>] [resolve-via-host] [resolve-via-connected] [rx-ip4 <interface>] [out-labels <value value value>]" |
A help string to list the FIB path options.
Definition at line 630 of file fib_types.h.
| #define FIB_SPEICAL_TYPE_MAX (FIB_SPEICAL_TYPE_LAST + 1) |
The maximum number of types.
Definition at line 318 of file fib_types.h.
| #define FOR_EACH_FIB_FORW_CHAIN | ( | _item | ) |
Definition at line 164 of file fib_types.h.
| #define FOR_EACH_FIB_FORW_MPLS_CHAIN | ( | _item | ) |
Definition at line 169 of file fib_types.h.
| #define FOR_EACH_FIB_IP_PROTOCOL | ( | _item | ) |
Definition at line 69 of file fib_types.h.
| #define FOR_EACH_FIB_PROTOCOL | ( | _item | ) |
Definition at line 64 of file fib_types.h.
| #define FOR_EACH_FIB_SPEICAL_TYPE | ( | _item | ) |
Definition at line 320 of file fib_types.h.
| #define MFIB_RPF_ID_NONE (0) |
Definition at line 423 of file fib_types.h.
| typedef enum fib_forward_chain_type_t_ fib_forward_chain_type_t |
FIB output chain type.
When a child object requests a forwarding contribution from a parent, it does so for a particular scenario. This enumererates those sceanrios
| typedef struct fib_mpls_label_t_ fib_mpls_label_t |
Configuration for each label value in the output-stack.
| typedef enum fib_mpls_lsp_mode_t_ fib_mpls_lsp_mode_t |
MPLS LSP mode - only valid at the head and tail.
| typedef u32 fib_node_index_t |
A typedef of a node index.
we make this typedef so the code becomes easier for a human to parse.
Definition at line 29 of file fib_types.h.
| typedef struct fib_path_ext_list_t_ fib_path_ext_list_t |
A list of path-extensions.
| typedef enum fib_path_list_walk_rc_t_ fib_path_list_walk_rc_t |
return code to control pat-hlist walk
| typedef struct fib_prefix_t_ fib_prefix_t |
Aggregate type for a prefix.
| typedef enum fib_protocol_t_ fib_protocol_t |
Protocol Type.
packed so it consumes a u8 only
| typedef enum fib_route_path_flags_t_ fib_route_path_flags_t |
Path flags from the control plane.
| typedef struct fib_route_path_t_ fib_route_path_t |
A representation of a path as described by a route producer.
These paramenters will determine the path 'type', of which there are: 1) Attached-next-hop: a single peer on a link. It is 'attached' because it is in the same sub-net as the router, on a link directly connected to the route. It is 'next=hop' since the next-hop address of the peer is known. 2) Attached: the next-hop is not known. but we can ARP for it. 3) Recursive. The next-hop is known but the interface is not. So to find the adj to use we must recursively resolve the next-hop. 3) deaggregate (deag) A further lookup is required.
| typedef u32 fib_rpf_id_t |
An RPF-ID is numerical value that is used RPF validate.
An entry has-a RPF-ID, when a packet egress from (e.g. an LSP) it gains an RPF-ID, these two are compared for the RPF check. This replaces the interfce based chack (since the LSP has no associated interface.
Definition at line 421 of file fib_types.h.
| typedef enum fib_special_type_t_ fib_special_type_t |
Enurmeration of special path/entry types.
FIB output chain type.
When a child object requests a forwarding contribution from a parent, it does so for a particular scenario. This enumererates those sceanrios
Definition at line 104 of file fib_types.h.
| enum fib_mpls_lsp_mode_t_ |
MPLS LSP mode - only valid at the head and tail.
| Enumerator | |
|---|---|
| FIB_MPLS_LSP_MODE_PIPE | Pipe Mode - the default. TTL and DSCP markings are not carried between the layers |
| FIB_MPLS_LSP_MODE_UNIFORM | Uniform mode. TTL and DSCP are copied between the layers |
Definition at line 428 of file fib_types.h.
return code to control pat-hlist walk
| Enumerator | |
|---|---|
| FIB_PATH_LIST_WALK_STOP | |
| FIB_PATH_LIST_WALK_CONTINUE | |
Definition at line 635 of file fib_types.h.
| enum fib_protocol_t_ |
Protocol Type.
packed so it consumes a u8 only
| Enumerator | |
|---|---|
| FIB_PROTOCOL_IP4 | |
| FIB_PROTOCOL_IP6 | |
| FIB_PROTOCOL_MPLS | |
Definition at line 35 of file fib_types.h.
Path flags from the control plane.
Definition at line 330 of file fib_types.h.
| enum fib_special_type_t_ |
Enurmeration of special path/entry types.
Definition at line 296 of file fib_types.h.
| fib_protocol_t bier_hdr_proto_to_fib | ( | bier_hdr_proto_id_t | bproto | ) |
Convert from BIER next-hop proto to FIB proto.
| fib_protocol_t dpo_proto_to_fib | ( | dpo_proto_t | dpo_proto | ) |
| fib_forward_chain_type_t fib_forw_chain_type_from_dpo_proto | ( | dpo_proto_t | proto | ) |
Convert from a payload-protocol to a chain type.
Definition at line 427 of file fib_types.c.
Here is the caller graph for this function:| fib_forward_chain_type_t fib_forw_chain_type_from_fib_proto | ( | fib_protocol_t | proto | ) |
Convert from a fib-protocol to a chain type.
Definition at line 449 of file fib_types.c.
Here is the caller graph for this function:| fib_forward_chain_type_t fib_forw_chain_type_from_link_type | ( | vnet_link_t | lt | ) |
Convert from a adjacency's link type to chain type.
Definition at line 493 of file fib_types.c.
Here is the caller graph for this function:| dpo_proto_t fib_forw_chain_type_to_dpo_proto | ( | fib_forward_chain_type_t | fct | ) |
Convert from a chain type to the DPO proto it will install.
Definition at line 516 of file fib_types.c.
Here is the caller graph for this function:| vnet_link_t fib_forw_chain_type_to_link_type | ( | fib_forward_chain_type_t | fct | ) |
Convert from a chain type to the adjacency's link type.
Definition at line 465 of file fib_types.c.
Here is the caller graph for this function:
|
inlinestatic |
Convert from boolean is_ip6 to FIB protocol.
Drop MPLS on the floor in favor of IPv4.
Definition at line 79 of file fib_types.h.
Here is the caller graph for this function:| int fib_prefix_cmp | ( | const fib_prefix_t * | p1, |
| const fib_prefix_t * | p2 | ||
| ) |
Compare two prefixes for equality.
Definition at line 177 of file fib_types.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void fib_prefix_copy | ( | fib_prefix_t * | dst, |
| const fib_prefix_t * | src | ||
| ) |
Copy a prefix.
Definition at line 170 of file fib_types.c.
Here is the caller graph for this function:| void fib_prefix_from_ip46_addr | ( | const ip46_address_t * | addr, |
| fib_prefix_t * | pfx | ||
| ) |
Host prefix from ip.
Definition at line 81 of file fib_types.c.
Here is the call graph for this function:
Here is the caller graph for this function:| u8 fib_prefix_get_host_length | ( | fib_protocol_t | proto | ) |
| int fib_prefix_is_cover | ( | const fib_prefix_t * | p1, |
| const fib_prefix_t * | p2 | ||
| ) |
Compare two prefixes for covering relationship.
Definition at line 212 of file fib_types.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int fib_prefix_is_host | ( | const fib_prefix_t * | p | ) |
Return true is the prefix is a host prefix.
Definition at line 249 of file fib_types.c.
Here is the caller graph for this function:| void fib_prefix_normalize | ( | const fib_prefix_t * | p, |
| fib_prefix_t * | out | ||
| ) |
normalise a prefix (i.e.
mask the host bits according to the prefix length)
Definition at line 264 of file fib_types.c.
Here is the call graph for this function:
Here is the caller graph for this function:| fib_protocol_t fib_proto_from_ip46 | ( | ip46_type_t | iproto | ) |
Convert from ip46_type to fib_protocol.
Definition at line 409 of file fib_types.c.
Here is the caller graph for this function:| dpo_proto_t fib_proto_to_dpo | ( | fib_protocol_t | fib_proto | ) |
| ip46_type_t fib_proto_to_ip46 | ( | fib_protocol_t | fproto | ) |
Convert from fib_protocol to ip46_type.
Definition at line 393 of file fib_types.c.
Here is the caller graph for this function:| vnet_link_t fib_proto_to_link | ( | fib_protocol_t | proto | ) |
Convert from a protocol to a link type.
Definition at line 377 of file fib_types.c.
Here is the caller graph for this function:| int fib_route_path_is_attached | ( | const fib_route_path_t * | rpath | ) |
Definition at line 760 of file fib_types.c.
Here is the call graph for this function:
Here is the caller graph for this function:Format an MPLS label.
Definition at line 65 of file fib_types.c.
Here is the call graph for this function:
Here is the caller graph for this function:Format an LSP mode type.
Definition at line 57 of file fib_types.c.
Here is the caller graph for this function:Definition at line 283 of file fib_types.c.
Here is the call graph for this function:
Here is the caller graph for this function:Format route path flags.
Definition at line 143 of file fib_types.c.
Here is the call graph for this function:Format route path flags.
Definition at line 96 of file fib_types.c.
Here is the caller graph for this function:| STATIC_ASSERT | ( | STRUCT_OFFSET_OF(fib_prefix_t, fp_addr) | = =4, |
| "FIB Prefix's address is 4 byte aligned." | |||
| ) |
| uword unformat_fib_route_path | ( | unformat_input_t * | input, |
| va_list * | args | ||
| ) |
Unformat a fib_route_path_t from CLI input.
Definition at line 540 of file fib_types.c.
Here is the call graph for this function:
Here is the caller graph for this function: