FD.io VPP
v17.04-9-g99c0734
Vector Packet Processing
|
A FIB path. More...
Public Member Functions | |
STRUCT_MARK (path_hash_start) | |
This marks the start of the memory area used to hash the path. More... | |
STRUCT_MARK (path_hash_end) | |
Data Fields | |
fib_node_t | fp_node |
A path is a node in the FIB graph. More... | |
u32 | fp_pl_index |
The index of the path-list to which this path belongs. More... | |
fib_path_cfg_flags_t | fp_cfg_flags |
Configuration Flags. More... | |
fib_path_type_t | fp_type |
The type of the path. More... | |
fib_protocol_t | fp_nh_proto |
The protocol of the next-hop, i.e. More... | |
u32 | fp_weight |
UCMP [unnormalised] weigt. More... | |
union { | |
struct { | |
ip46_address_t fp_nh | |
The next-hop. More... | |
u32 fp_interface | |
The interface. More... | |
} attached_next_hop | |
struct { | |
u32 fp_interface | |
The interface. More... | |
} attached | |
struct { | |
union { | |
ip46_address_t fp_ip | |
The next-hop. More... | |
mpls_label_t fp_local_label | |
The local label to resolve through. More... | |
} fp_nh | |
fib_node_index_t fp_tbl_id | |
The FIB table index in which to find the next-hop. More... | |
} recursive | |
struct { | |
fib_node_index_t fp_tbl_id | |
The FIB index in which to perfom the next lookup. More... | |
} deag | |
struct { | |
} special | |
struct { | |
dpo_id_t fp_ex_dpo | |
The user provided 'exclusive' DPO. More... | |
} exclusive | |
struct { | |
u32 fp_interface | |
The interface on which the local address is configured. More... | |
ip46_address_t fp_addr | |
The next-hop. More... | |
} receive | |
}; | |
per-type union of the data required to resolve the path More... | |
fib_path_oper_flags_t | fp_oper_flags |
Memebers in this last section represent information that is dervied during resolution. More... | |
fib_node_index_t | fp_via_fib |
the resolving via fib. More... | |
dpo_id_t | fp_dpo |
The Data-path objects through which this path resolves for IP. More... | |
u32 | fp_sibling |
the index of this path in the parent's child list. More... | |
A FIB path.
Definition at line 156 of file fib_path.c.
fib_path_t_::STRUCT_MARK | ( | path_hash_start | ) |
This marks the start of the memory area used to hash the path.
fib_path_t_::STRUCT_MARK | ( | path_hash_end | ) |
union { ... } |
per-type union of the data required to resolve the path
struct { ... } fib_path_t_::attached |
struct { ... } fib_path_t_::attached_next_hop |
struct { ... } fib_path_t_::deag |
struct { ... } fib_path_t_::exclusive |
ip46_address_t fib_path_t_::fp_addr |
The next-hop.
Definition at line 273 of file fib_path.c.
fib_path_cfg_flags_t fib_path_t_::fp_cfg_flags |
Configuration Flags.
Definition at line 176 of file fib_path.c.
dpo_id_t fib_path_t_::fp_dpo |
The Data-path objects through which this path resolves for IP.
Definition at line 298 of file fib_path.c.
dpo_id_t fib_path_t_::fp_ex_dpo |
The user provided 'exclusive' DPO.
Definition at line 263 of file fib_path.c.
u32 fib_path_t_::fp_interface |
The interface.
The interface on which the local address is configured.
Definition at line 207 of file fib_path.c.
ip46_address_t fib_path_t_::fp_ip |
The next-hop.
Definition at line 221 of file fib_path.c.
mpls_label_t fib_path_t_::fp_local_label |
The local label to resolve through.
Definition at line 225 of file fib_path.c.
ip46_address_t fib_path_t_::fp_nh |
The next-hop.
Definition at line 203 of file fib_path.c.
union { ... } fib_path_t_::fp_nh |
fib_protocol_t fib_path_t_::fp_nh_proto |
The protocol of the next-hop, i.e.
the address family of the next-hop's address. We can't derive this from the address itself since the address can be all zeros
Definition at line 188 of file fib_path.c.
fib_node_t fib_path_t_::fp_node |
A path is a node in the FIB graph.
Definition at line 160 of file fib_path.c.
fib_path_oper_flags_t fib_path_t_::fp_oper_flags |
Memebers in this last section represent information that is dervied during resolution.
It should not be copied to new paths nor compared. Operational Flags
Definition at line 287 of file fib_path.c.
u32 fib_path_t_::fp_pl_index |
The index of the path-list to which this path belongs.
Definition at line 165 of file fib_path.c.
u32 fib_path_t_::fp_sibling |
the index of this path in the parent's child list.
Definition at line 303 of file fib_path.c.
fib_node_index_t fib_path_t_::fp_tbl_id |
The FIB table index in which to find the next-hop.
The FIB index in which to perfom the next lookup.
This needs to be fixed. We should lookup the adjacencies in a separate table of adjacencies, rather than from the FIB. Two reasons I can think of:
we can only return link-type IPv4 and so not the link-type MPLS. more on this in a later commit.
The table ID should only belong to a recursive path and indicate which FIB should be used to resolve the next-hop.
Definition at line 249 of file fib_path.c.
fib_path_type_t fib_path_t_::fp_type |
fib_node_index_t fib_path_t_::fp_via_fib |
the resolving via fib.
not part of the union, since it it not part of the path's hash.
Definition at line 293 of file fib_path.c.
u32 fib_path_t_::fp_weight |
UCMP [unnormalised] weigt.
Definition at line 193 of file fib_path.c.
struct { ... } fib_path_t_::receive |
struct { ... } fib_path_t_::recursive |
struct { ... } fib_path_t_::special |