An IP route iterator.
Private Functions
Friends
A route via iterator.
Private Functions
Friends
The manager for IP static route configuration.
Public Functions
Set the manager to only interact with routes with the given tag.
If this tag is set to a non-zero number, then methods on this class will only affect or expose routes with the given tag.
Returns the current tag, or 0 if no tag is set.
Resync provides a mechanism to set routes to a known state.
To start a resync, call resync_init() and then use ip_route_set() and ip_route_via_set() to populate the static routing table with the known entries. After all entries have been set, call resync_complete(), which will delete all existing routes and vias that were not added or modified during resync. If a tag is set, resync will only delete routes and vias corresponding to the current tag.
During resync, this manager will act like it is referencing a temporary table that starts off empty. Thus, methods like exist, del, and getters will act only on that temporary table, regardless of the real values in Sysdb. The one exception is iteration; they will traverse the table stored in Sysdb, regardless of whether or not the manager is in resync mode.
Completes any underway resync operation.
Iterates across all configured static routes. If a tag is set, only return routes that have match the current tag.
Iterates across configured nexthops for a given route key, i.e., emit all ip_route_via_t’s for a given route key. If a tag is set, only return vias on routes that match the current tag.
Tests for existence of any routes matching the route key in the config. If a tag is set and the route belongs to a different tag, this function returns false.
Tests if the given via exists.
Gets the IP route with the corresponding ip_route_key_t. Returns an empty ip_route_t() if no matching route is found.
Inserts or updates a static route into the switch configuration.
Performs the same operation as `ip_route_set`, but lets an agent hint what type of vias will be attached to this route. For example, if the agent knows it will be adding nexthop group vias to this route, it can pass `eosIP_ROUTE_ACTION_NEXTHOP_GROUP`, which allows EOS to more efficiently program routes. Routes are created by ‘forward’ routes if no additional information is provided.
Removes all ECMP vias matching the route key, and the route itself.
Adds a via to an ip_route_t.
A via is associated with an ip_route_t by their `ip_route_key_t` attributes. If an agent adds multiple vias with a hop or intf set, EOS will ECMP across these “forward” routes. If it programs a ‘drop’ via (by setting the intf attribute to Null0), all other vias attached to this route will be removed, and all traffic on this route will be dropped. Similarly, if the nexthop_group attribute is set, all other vias with the same `ip_route_key_t` will be removed, and the new nexthop group via will be programmed in their place. This function will call panic() if the route does not match the currently configured tag.
If the passed via has no IP address, interface or nexthop group set.
Removes a via from an ip_route_t. When all vias are removed, the route still exists with no nexthop information.
Protected Functions
Private Members
Warning
doxygenfile: Found multiple matches for file “eos/types/ip_route.h