Go to the source code of this file.
|
static fib_ae_export_t * | fib_entry_ae_add_or_lock (fib_node_index_t connected) |
|
static void | fib_entry_import_remove (fib_ae_import_t *import, fib_node_index_t entry_index) |
|
static void | fib_entry_import_add (fib_ae_import_t *import, fib_node_index_t entry_index) |
|
static int | fib_entry_covered_walk_import (fib_entry_t *cover, fib_node_index_t covered, void *ctx) |
| Call back when walking a connected prefix's covered prefixes for import. More...
|
|
static void | fib_ae_export_import_add (fib_ae_export_t *export, fib_ae_import_t *import) |
|
void | fib_attached_export_import (fib_entry_t *fib_entry, fib_node_index_t export_fib) |
| FIB attached export. More...
|
|
void | fib_attached_export_purge (fib_entry_t *fib_entry) |
| All the imported entries need to be purged. More...
|
|
void | fib_attached_export_covered_added (fib_entry_t *cover, fib_node_index_t covered) |
|
void | fib_attached_export_covered_removed (fib_entry_t *cover, fib_node_index_t covered) |
|
static void | fib_attached_export_cover_modified_i (fib_entry_t *fib_entry) |
|
void | fib_attached_export_cover_change (fib_entry_t *fib_entry) |
| If this entry is tracking a cover (in another table) then that cover has changed. More...
|
|
void | fib_attached_export_cover_update (fib_entry_t *fib_entry) |
| If this entry is tracking a cover (in another table) then that cover has been updated. More...
|
|
u8 * | fib_ae_import_format (fib_node_index_t impi, u8 *s) |
|
u8 * | fib_ae_export_format (fib_node_index_t expi, u8 *s) |
|
◆ fib_ae_export_t
A description of the need to export routes to one or more export tables.
◆ fib_ae_import_t
A description of the need to import routes from the export table.
◆ fib_ae_export_format()
◆ fib_ae_export_import_add()
◆ fib_ae_import_format()
◆ fib_attached_export_cover_change()
void fib_attached_export_cover_change |
( |
fib_entry_t * |
fib_entry | ) |
|
If this entry is tracking a cover (in another table) then that cover has changed.
re-evaluate import.
Definition at line 495 of file fib_attached_export.c.
◆ fib_attached_export_cover_modified_i()
static void fib_attached_export_cover_modified_i |
( |
fib_entry_t * |
fib_entry | ) |
|
|
static |
◆ fib_attached_export_cover_update()
void fib_attached_export_cover_update |
( |
fib_entry_t * |
fib_entry | ) |
|
If this entry is tracking a cover (in another table) then that cover has been updated.
re-evaluate import.
Definition at line 505 of file fib_attached_export.c.
◆ fib_attached_export_covered_added()
◆ fib_attached_export_covered_removed()
◆ fib_attached_export_import()
FIB attached export.
what's it all about? say one does this: set int ip table Gig0 2 set int ip addr Gig0 10.0.0.1/24 Ggi0 is in table 2 with a connected address. Now we add a routing matching said connected in a different table ip route add table 3 10.0.0.0/24 via Gig0 How do we expect traffic in table 3 to be forwarded? Clearly out of Ggi0. It's an attached route, hence we are saying that we can ARP for hosts in the attached subnet. and we can. but any ARP entries we send we be received on Gig0, but since Gig0 is in table 2, it will install the adj-fins in table 2. So traffic in table 3 will never hit an adj-fib and hence always the glean, and so thus be effectively dropped. How do we fix this? Attached Export !! All more specfiic entries in table 2 that track and are covered by the connected are automatically exported into table 3. Now table 3 also has adj-fibs (and the local) so traffic to hosts is restored.
Definition at line 240 of file fib_attached_export.c.
◆ fib_attached_export_purge()
void fib_attached_export_purge |
( |
fib_entry_t * |
fib_entry | ) |
|
◆ fib_entry_ae_add_or_lock()
◆ fib_entry_covered_walk_import()
Call back when walking a connected prefix's covered prefixes for import.
Definition at line 209 of file fib_attached_export.c.
◆ fib_entry_import_add()
◆ fib_entry_import_remove()
◆ fib_ae_export_pool
◆ fib_ae_import_pool