nexthop_group¶
Nexthop groups are a forwarding/tunneling abstraction in EOS.
A nexthop group is comprised of a tunneling protocol (IP/GRE or MPLS, for example) and a collection of nexthop (aka destination) IP addresses and other forwarding information (such as MPLS stack operations to apply for traffic sent to that nexthop). The same IP address may be specified in more than one entry within the group, allowing for unequal cost load balancing. By using distinct addresses for each entry, equal cost load balancing can be achieved.
The nexthop or destination IP is the tunnel (outer) destination IP address for GRE and IP-in-IP. For MPLS, the nexthop address is used to find (via ARP/ND) a MAC address for the MPLS next hop.
Nexthop entries must be manually monitored and maintained by the agent. If a tunnel destination (aka nexthop) becomes unreachable, traffic hashed to that entry will be black-holed in the network until a working entry is set in that index of the nexthop group, or the entry is deleted.
Presently, all nexthop groups encapsulate traffic directed to them, either as an IP-in-IP (IP protocol 4) tunnel, a GRE (IP protocol 47) tunnel encapsulating either IPv4, IPv6 or MPLS traffic, or as pure MPLS frames. MPLS label switching operations are also supported, see the nexthop_group_entry_t class for more information.
Presently, MPLS switching actions are only only supported when used with PBR and cannot be used with IP routes.
The following example creates a nexthop group called “nhg1” which performs GRE encapsulation of traffic sent to it, sending traffic to two different nexthop IP addresses unequally (at a 2/3 to 1/3 ratio). For a usage of a nexthop group with policy routing, see the policy_map.h file.
eos::nexthop_group_t nhg("nhg1", eos::NEXTHOP_GROUP_GRE);
// Specify two destinations (nexthop group entries) for the traffic
eos::nexthop_group_entry_t nhe1(eos::ip_addr_t("172.12.1.1"));
eos::nexthop_group_entry_t nhe2(eos::ip_addr_t("172.12.1.2"));
// Set the nexthop group entries on the group with unequal cost load balancing
// Balance traffic 2/3 to 172.12.1.1, 1/3 to 172.12.1.2.
nhg.nexthop_set(0, nhe1);
nhg.nexthop_set(1, nhe1);
nhg.nexthop_set(2, nhe2);
-
namespace
eos
-
class
nexthop_group_handler
: public eos::base_handler<nexthop_group_mgr, nexthop_group_handler>¶ - #include <nexthop_group.h>
This class handles changes to a nexthop group’s status.
Subclassed by eos::nexthop_group_handler_v2, eos::nexthop_group_handler_v3
Public Functions
-
explicit
nexthop_group_handler
(nexthop_group_mgr*)¶
-
inline nexthop_group_mgr *
get_nexthop_group_mgr
() const¶
-
void
watch_all_nexthop_groups
(bool)¶ Registers this class to receive change updates on all nexthop groups.
Expects a boolean signifying whether notifications should be propagated to this instance or not.
-
void
watch_nexthop_group
(std::string const &nexthop_group_name, bool)¶ Registers this class to receive change updates on the given nexthop group.
Expects the name of the corresponding nexthop group and a boolean signifying whether notifications should be propagated to this instance or not.
-
explicit
-
class
nexthop_group_handler_v2
: public eos::nexthop_group_handler¶ - #include <nexthop_group.h>
This class handles changes to a nexthop group’s status and provides its version ID in the programmed callback.
Public Functions
-
explicit
nexthop_group_handler_v2
(nexthop_group_mgr*)¶
-
explicit
-
class
nexthop_group_handler_v3
: public eos::nexthop_group_handler¶ - #include <nexthop_group.h>
This class handles changes to a nexthop group’s status and provides its version ID as well as a nexthop_group_status attribute in the programmed callback.
Public Functions
-
explicit
nexthop_group_handler_v3
(nexthop_group_mgr*)¶
-
inline virtual void
on_nexthop_group_programmed
(std::string const &nexthop_group_name) final override¶ Do not override this function. Instead override the alternative programmed handler.
-
virtual void
on_nexthop_group_programmed
(std::string const &nexthop_group_name, uint16_t version_id, nexthop_group_programmed_status_t const &callback_status)¶ Alternative handler called when a nexthop group is programmed in response to a configuration change. Provides the nexthop group’s version ID along with the status for the nexthop group that triggered the callback
-
explicit
-
class
nexthop_group_iter_t
: public eos::iter_base<nexthop_group_t, nexthop_group_iter_impl>¶ Private Functions
-
explicit
nexthop_group_iter_t
(nexthop_group_iter_impl*const)¶
Friends
- friend class nexthop_group_iter_impl
-
explicit
-
class
programmed_nexthop_group_iter_t
: public eos::iter_base<std::string, programmed_nexthop_group_iter_impl>¶ Private Functions
-
explicit
programmed_nexthop_group_iter_t
(programmed_nexthop_group_iter_impl*const)¶
Friends
- friend class programmed_nexthop_group_iter_impl
-
explicit
-
class
nexthop_group_mgr
: public eos::base_mgr<nexthop_group_handler, std::string>¶ - #include <nexthop_group.h>
A manager of ‘nexthop-group’ configurations.
Create one of these via an sdk object prior to starting the agent main loop. When your eos::agent_handler::on_initialized virtual function is called, the manager is valid for use.
Public Functions
-
virtual
~nexthop_group_mgr
()¶
-
virtual void
resync_init
() = 0¶
-
virtual void
resync_complete
() = 0¶
-
virtual nexthop_group_iter_t
nexthop_group_iter
() const = 0¶ Iterates over all the nexthop groups currently configured.
-
virtual nexthop_group_t
nexthop_group
(std::string const &nexthop_group_name) const = 0¶ Retrieves an existing nexthop_group_t by name, if it exists. Otherwise this returns an empty
nexthop_group_t()
-
virtual nexthop_group_entry_counter_t
counter
(std::string const &nexthop_group_name, uint16_t entry) const = 0¶ Returns the counter corresponding to the given nexthop group name and entry, if it exists. Otherwise this returns an empty ‘nexthop_group_entry_counter_t()’
Counters are reset whenever nexthop group entry configuration changes.
-
virtual bool
exists
(std::string const &nexthop_group_name) const = 0¶ Returns true if a nexthop group with the given name has been configured.
-
virtual bool
active
(std::string const &nexthop_group_name) const = 0¶ Returns whether or not the given nexthop group is active.
Nexthop groups are active if the FIB has prefixes using this group. Deleting an active nexthop group will cause all prefixes that point to that nexthop group to blackhole their traffic.
In order to hitlessly delete a nexthop group, first delete all prefixes that point to it, wait for the nexthop group to no longer be active (using nexthop_group_handler::on_nexthop_group_active), and then delete the nexthop group.
-
virtual void
nexthop_group_set
(nexthop_group_t const&) = 0¶ Creates or updates a nexthop group.
-
virtual void
nexthop_group_del
(std::string const &nexthop_group_name) = 0¶ Removes the named nexthop group from the configuration if it exists.
-
virtual programmed_nexthop_group_iter_t
programmed_nexthop_group_iter
() const = 0¶
-
virtual nexthop_group_t
programmed_nexthop_group
(std::string const &nexthop_group_name) const = 0¶
-
virtual void
nexthop_group_set
(nexthop_group_t const &group, uint16_t *version_id) = 0¶
-
virtual nexthop_group_counter_state_t
get_nexthop_group_counter_state
(std::string const &nexthop_group_name) const = 0¶
Protected Functions
-
nexthop_group_mgr
()¶
Private Members
-
nexthop_group_mgr
Friends
- friend class nexthop_group_handler
-
virtual
-
class
Type definitions in nexthop_group¶
-
namespace
eos
Enums
-
enum
nexthop_group_encap_t
¶ The type of encapsulation to use for this nexthop group.
Each tunnel encapsulation type for Nexthop Groups causes a variety of packet headers for packets using the group to be changed to appropriately encapsulate the frame. IP type has no encapsulation.
Values:
-
enumerator
NEXTHOP_GROUP_TYPE_NULL
¶
-
enumerator
NEXTHOP_GROUP_IP_IN_IP
¶ IP in IP encapsulation.
-
enumerator
NEXTHOP_GROUP_GRE
¶ GRE encapsulation.
-
enumerator
NEXTHOP_GROUP_MPLS
¶ MPLS encapsulation.
-
enumerator
NEXTHOP_GROUP_MPLS_OVER_GRE
¶ MPLS over GRE encapsulation.
-
enumerator
NEXTHOP_GROUP_IP
¶ IP no encapsulation.
-
enumerator
-
enum
nexthop_group_gre_key_t
¶ How the GRE tunnel key is set for GRE nexthop groups.
Values:
-
enumerator
NEXTHOP_GROUP_GRE_KEY_NULL
¶ Default value; do not set the GRE tunnel key.
-
enumerator
NEXTHOP_GROUP_GRE_KEY_INGRESS_INTF
¶ Use the ingress interface as the tunnel key. Not supported in this release.
-
enumerator
-
enum
nexthop_group_counter_state_t
¶ The current counter programming status for a nexthop group.
Counter State is a summary of the entire nexthop group and will not note which specific entries are in the provided state.
Values:
-
enumerator
NEXTHOP_GROUP_COUNTER_INACTIVE
¶ Nexthop group entry counters are not configured for this group.
-
enumerator
NEXTHOP_GROUP_COUNTER_PROGRAMMING_FAILED
¶ At least one nexthop group entry counter has failed to be programmed in hardware.
-
enumerator
NEXTHOP_GROUP_COUNTER_PROGRAMMING_COMPLETE
¶ All nexthop group entry counters have been successfully programmed in hardware.
-
enumerator
-
enum
nexthop_group_programmed_hw_state_t
¶ The current vias hardware programmed state for a nexthop group.
Programmed HW State is a summary of the entire nexthop group and will not note which specific entry is in the provided state.
Values:
-
enumerator
NEXTHOP_GROUP_HW_DROP
¶ All nexthop group entries are not programmed in hardware.
-
enumerator
NEXTHOP_GROUP_HW_PARTIALLY_PROGRAMMED
¶ At least one nexthop group entry is programmed in hardware.
-
enumerator
NEXTHOP_GROUP_HW_ALL_PROGRAMMED
¶ All nexthop group entries are programmed in hardware.
-
enumerator
-
class
nexthop_group_mpls_action_t
¶ - #include <nexthop_group.h>
An MPLS nexthop group switching operation.
This structure combines a stack of labels and an MPLS switching operation using those labels, such as eos::MPLS_ACTION_PUSH.
Public Functions
-
nexthop_group_mpls_action_t
()¶ Default constructor.
-
explicit
nexthop_group_mpls_action_t
(mpls_action_t action_type)¶ Constructs an MPLS action with a specific switching operation.
-
nexthop_group_mpls_action_t
(mpls_action_t action_type, std::forward_list<mpls_label_t> const &label_stack)¶ Constructs a populated MPLS label stack for some switching action.
-
nexthop_group_mpls_action_t
(const nexthop_group_mpls_action_t &other)¶
-
nexthop_group_mpls_action_t &
operator=
(nexthop_group_mpls_action_t const &other)¶
-
nexthop_group_mpls_action_t
(nexthop_group_mpls_action_t &&other) noexcept¶
-
nexthop_group_mpls_action_t &
operator=
(nexthop_group_mpls_action_t &&other) noexcept¶
-
mpls_action_t
action_type
() const¶ Getter for ‘action_type’: the MPLS switching operation for this action.
-
void
action_type_is
(mpls_action_t action_type)¶ Setter for ‘action_type’.
-
std::forward_list<mpls_label_t> const &
label_stack
() const¶ Getter for ‘label_stack’: the MPLS label stack.
The first element in iteration order is the innermost label, the last element in iteration order is the outermost label. When using std::forward_list< eos::mpls_label_t >::push_front to build the label stack, the first element pushed will be the outermost label, also known as top of stack.
-
void
label_stack_is
(std::forward_list<mpls_label_t> const &label_stack)¶ Setter for ‘label_stack’.
-
void
label_stack_is
(std::forward_list<mpls_label_t> &&label_stack)¶ Moving Setter for ‘label_stack’.
-
void
label_stack_set
(mpls_label_t const &label_stack)¶ Prepend one label_stack to the list.
-
void
label_stack_set
(mpls_label_t &&label_stack)¶ Prepend one label_stack to the list.
-
void
label_stack_del
(mpls_label_t const &label_stack)¶ Remove all matching label_stack elements.
-
bool
operator==
(nexthop_group_mpls_action_t const &other) const¶
-
bool
operator!=
(nexthop_group_mpls_action_t const &other) const¶
-
bool
operator<
(nexthop_group_mpls_action_t const &other) const¶
-
uint32_t
hash
() const¶ The hash function for type nexthop_group_mpls_action_t.
-
void
mix_me
(hash_mix &h) const¶ The hash mix function for type nexthop_group_mpls_action_t.
Public Static Functions
-
static void
operator delete
(void*) noexcept¶
Friends
-
friend std::ostream &
operator<<
(std::ostream &os, const nexthop_group_mpls_action_t &obj)¶ A utility stream operator that adds a string representation of nexthop_group_mpls_action_t to the ostream.
-
-
class
nexthop_group_entry_counter_t
¶ - #include <nexthop_group.h>
Defines counter for a nexthop entry.
Public Functions
-
nexthop_group_entry_counter_t
()¶
-
nexthop_group_entry_counter_t
(uint64_t packets, uint64_t bytes, bool valid)¶
-
nexthop_group_entry_counter_t
(const nexthop_group_entry_counter_t &other)¶
-
nexthop_group_entry_counter_t &
operator=
(nexthop_group_entry_counter_t const &other)¶
-
nexthop_group_entry_counter_t
(nexthop_group_entry_counter_t &&other) noexcept¶
-
nexthop_group_entry_counter_t &
operator=
(nexthop_group_entry_counter_t &&other) noexcept¶
-
uint64_t
packets
() const¶
-
uint64_t
bytes
() const¶
-
bool
valid
() const¶
-
bool
operator==
(nexthop_group_entry_counter_t const &other) const¶
-
bool
operator!=
(nexthop_group_entry_counter_t const &other) const¶
-
bool
operator<
(nexthop_group_entry_counter_t const &other) const¶
-
uint32_t
hash
() const¶ The hash function for type nexthop_group_entry_counter_t.
-
void
mix_me
(hash_mix &h) const¶ The hash mix function for type nexthop_group_entry_counter_t.
Public Static Functions
-
static void
operator delete
(void*) noexcept¶
Friends
-
friend std::ostream &
operator<<
(std::ostream &os, const nexthop_group_entry_counter_t &obj)¶ A utility stream operator that adds a string representation of nexthop_group_entry_counter_t to the ostream.
-
-
class
nexthop_group_entry_t
¶ - #include <nexthop_group.h>
A nexthop group destination entry.
An entry consists of a nexthop IP address, and optionally an MPLS label switching operation.
Public Functions
-
nexthop_group_entry_t
()¶
-
nexthop_group_entry_t
(const nexthop_group_entry_t &other)¶
-
nexthop_group_entry_t &
operator=
(nexthop_group_entry_t const &other)¶
-
nexthop_group_entry_t
(nexthop_group_entry_t &&other) noexcept¶
-
nexthop_group_entry_t &
operator=
(nexthop_group_entry_t &&other) noexcept¶
-
nexthop_group_mpls_action_t
mpls_action
() const¶ Getter for ‘mpls_action’: MPLS label switching stack for this entry.
-
void
mpls_action_is
(nexthop_group_mpls_action_t const &mpls_action)¶ Setter for ‘mpls_action’.
-
void
mpls_action_is
(nexthop_group_mpls_action_t &&mpls_action)¶ Moving Setter for ‘mpls_action’.
-
sbfd_echo_session_key_t
sbfd_session_key
() const¶ Getter for ‘sbfd_session_key’: the optional key to an sBFD session.
-
void
sbfd_session_key_is
(sbfd_echo_session_key_t const &sbfd_session_key)¶ Setter for ‘sbfd_session_key’.
-
void
sbfd_session_key_is
(sbfd_echo_session_key_t &&sbfd_session_key)¶ Moving Setter for ‘sbfd_session_key’.
-
std::string
child_nexthop_group
() const¶ Getter for ‘child_nexthop_group’: the name of next level nexthop-group.
-
void
child_nexthop_group_is
(std::string const &child_nexthop_group)¶ Setter for ‘child_nexthop_group’.
-
void
child_nexthop_group_is
(std::string &&child_nexthop_group)¶ Moving Setter for ‘child_nexthop_group’.
-
bool
operator==
(nexthop_group_entry_t const &other) const¶
-
bool
operator!=
(nexthop_group_entry_t const &other) const¶
-
bool
operator<
(nexthop_group_entry_t const &other) const¶
-
uint32_t
hash
() const¶ The hash function for type nexthop_group_entry_t.
-
void
mix_me
(hash_mix &h) const¶ The hash mix function for type nexthop_group_entry_t.
Public Static Functions
-
static void
operator delete
(void*) noexcept¶
Friends
-
friend std::ostream &
operator<<
(std::ostream &os, const nexthop_group_entry_t &obj)¶ A utility stream operator that adds a string representation of nexthop_group_entry_t to the ostream.
-
-
class
nexthop_group_t
¶ - #include <nexthop_group.h>
A nexthop group.
A nexthop group represents encapsulation and IP addressing information to be used with a policy routing application.
Public Functions
-
nexthop_group_t
()¶
-
nexthop_group_t
(std::string name, nexthop_group_encap_t type)¶
-
nexthop_group_t
(std::string name, nexthop_group_encap_t type, nexthop_group_gre_key_t gre_key_type)¶
-
nexthop_group_t
(std::string name, ip_addr_t const &source_ip, std::map<uint16_t, nexthop_group_entry_t> const &nexthops)¶
-
nexthop_group_t
(const nexthop_group_t &other)¶
-
nexthop_group_t &
operator=
(nexthop_group_t const &other)¶
-
nexthop_group_t
(nexthop_group_t &&other) noexcept¶
-
nexthop_group_t &
operator=
(nexthop_group_t &&other) noexcept¶
-
nexthop_group_encap_t
type
() const¶ Getter for ‘type’: the type of packet encapsulation used on the group.
-
nexthop_group_gre_key_t
gre_key_type
() const¶ Getter for ‘gre_key_type’: the key of the GRE tunnel.
-
uint16_t
ttl
() const¶ Getter for ‘ttl’: the TTL set in frame headers of IP-in-IP or GRE tunnels.
-
void
ttl_is
(uint16_t ttl)¶ Setter for ‘ttl’.
-
ip_addr_t
source_ip
() const¶ Getter for ‘source_ip’: the source IP used on frames sent on this group.
-
bool
autosize
() const¶ Getter for ‘autosize’: Dynamic resizing configuration for the nexthop group. When set, unresolved entries from the nexthop group are not programmed into hardware, and packets will be hashed across the remaining reachable entries in the group. Disabled (i.e. set to false) by default.
-
void
autosize_is
(bool autosize)¶ Setter for ‘autosize’.
-
uint16_t
size
() const¶ Utility method to return the number of entries configured in the nexthop group.
-
uint16_t
backup_size
() const¶ Utility method to return the number of entries configured in the nexthop group.
-
std::map<uint16_t, nexthop_group_entry_t> const &
nexthops
() const¶ Getter for ‘nexthops’: array index to nexthop group entry map.
-
void
nexthops_is
(std::map<uint16_t, nexthop_group_entry_t> const &nexthops)¶ Setter for ‘nexthops’.
-
void
nexthops_is
(std::map<uint16_t, nexthop_group_entry_t> &&nexthops)¶ Moving Setter for ‘nexthops’.
-
void
nexthop_set
(uint16_t key, nexthop_group_entry_t const &value)¶ Inserts key/value pair to the map.
-
void
nexthop_set
(uint16_t key, nexthop_group_entry_t &&value)¶ Inserts key/value pair to the map.
-
void
nexthop_del
(uint16_t key)¶ Deletes the key/value pair from the map.
-
std::map<uint16_t, nexthop_group_entry_t> const &
backup_nexthops
() const¶ Getter for ‘backup_nexthops’: array index to nexthop group backup entry map.
-
void
backup_nexthops_is
(std::map<uint16_t, nexthop_group_entry_t> const &backup_nexthops)¶ Setter for ‘backup_nexthops’.
-
void
backup_nexthops_is
(std::map<uint16_t, nexthop_group_entry_t> &&backup_nexthops)¶ Moving Setter for ‘backup_nexthops’.
-
void
backup_nexthop_set
(uint16_t key, nexthop_group_entry_t const &value)¶ Inserts key/value pair to the map.
-
void
backup_nexthop_set
(uint16_t key, nexthop_group_entry_t &&value)¶ Inserts key/value pair to the map.
-
void
backup_nexthop_del
(uint16_t key)¶ Deletes the key/value pair from the map.
-
std::map<uint16_t, ip_addr_t> const &
destination_ips
() const¶ Getter for ‘destination_ips’: array index to IP address map.
- Deprecated:
Use ‘nexthops’ instead.
-
void
destination_ips_is
(std::map<uint16_t, ip_addr_t> const &destination_ips)¶ Setter for ‘destination_ips’.
-
void
destination_ips_is
(std::map<uint16_t, ip_addr_t> &&destination_ips)¶ Moving Setter for ‘destination_ips’.
-
void
destination_ip_del
(uint16_t key)¶ Deletes the key/value pair from the map.
Getter for ‘counters_unshared’: Defines whether entry counters are unshared for the nexthop group. When set, do not share counter values between entries that share the same tunnel destination. Each entry will have its own unique counter. Disabled (i.e. set to false) by default.
Setter for ‘counters_unshared’.
-
bool
hierarchical_fecs_enabled
() const¶ Getter for ‘hierarchical_fecs_enabled’: Enableing hierarchical fec resolution for programming nexthop group entries. If this flag is true, the entry resolved over a remote nexthop will be programmed hierarchically in the hardware, i.e., the entry is pointing to another FEC which resolves over other nexthops. If the flag is false, the entry resolved over a remote nexthop will be programmed with the final resolved nexthop directly. In case the remote nexthop is resolved over ECMP of nexthops one of the ECMP nexthops is chosen to be programmed for the entry, in order to maintain the size of the nexthop group. This flag is also required to be set to true in order to configure entries resolving over other nexthop groups. The flag is disabled (i.e set to false) by default.
-
void
hierarchical_fecs_enabled_is
(bool hierarchical_fecs_enabled)¶ Setter for ‘hierarchical_fecs_enabled’.
-
bool
counters_persistent
() const¶ Getter for ‘counters_persistent’: Defines whether entry counters are persistent or reset by changes to nexthop group entry. When set, modifications to nexthop group entry will not reset the counter. This mode is only available when counter is unshared. Disabled (i.e. set to false) by default.
-
void
counters_persistent_is
(bool counters_persistent)¶ Setter for ‘counters_persistent’.
-
uint16_t
version_id
() const¶ Getter for ‘version_id’: Current version of the nexthop group when returned by nexthop_group or programmed_nexthop_group. Changing this value has no effect in nexthop_group_set.
-
void
version_id_is
(uint16_t version_id)¶ Setter for ‘version_id’.
-
bool
per_entry_backups
() const¶ Getter for ‘per_entry_backups’: Defines whether the backup entries present in backup_nexthops are on a per entry basis or are a collective set of backups. If enabled, the backup entry in position N of backup_nexthops will be activated in the event that the entry in position N of nexthops is not available to be programmed. The flag is disabled (set to false) by default.
-
void
per_entry_backups_is
(bool per_entry_backups)¶ Setter for ‘per_entry_backups’.
-
bool
operator==
(nexthop_group_t const &other) const¶
-
bool
operator!=
(nexthop_group_t const &other) const¶
-
bool
operator<
(nexthop_group_t const &other) const¶
-
uint32_t
hash
() const¶ The hash function for type nexthop_group_t.
-
void
mix_me
(hash_mix &h) const¶ The hash mix function for type nexthop_group_t.
Public Static Functions
-
static void
operator delete
(void*) noexcept¶
Friends
-
friend std::ostream &
operator<<
(std::ostream &os, const nexthop_group_t &obj)¶ A utility stream operator that adds a string representation of nexthop_group_t to the ostream.
-
-
class
nexthop_group_programmed_status_t
¶ - #include <nexthop_group.h>
Status for the associated nexthop group.
Public Functions
-
nexthop_group_programmed_status_t
()¶
-
nexthop_group_programmed_status_t
(nexthop_group_counter_state_t counter_state, nexthop_group_programmed_hw_state_t hw_state)¶
-
nexthop_group_programmed_status_t
(const nexthop_group_programmed_status_t &other)¶
-
nexthop_group_programmed_status_t &
operator=
(nexthop_group_programmed_status_t const &other)¶
-
nexthop_group_programmed_status_t
(nexthop_group_programmed_status_t &&other) noexcept¶
-
nexthop_group_programmed_status_t &
operator=
(nexthop_group_programmed_status_t &&other) noexcept¶
-
nexthop_group_counter_state_t
counter_state
() const¶ Getter for ‘counter_state’: The status of the counter programming for this nexthop group.
-
nexthop_group_programmed_hw_state_t
hw_state
() const¶ Getter for ‘hw_state’: The status of the hardware programmed entries for this nexthop group.
-
bool
operator==
(nexthop_group_programmed_status_t const &other) const¶
-
bool
operator!=
(nexthop_group_programmed_status_t const &other) const¶
-
bool
operator<
(nexthop_group_programmed_status_t const &other) const¶
-
uint32_t
hash
() const¶ The hash function for type nexthop_group_programmed_status_t.
-
void
mix_me
(hash_mix &h) const¶ The hash mix function for type nexthop_group_programmed_status_t.
Public Static Functions
-
static void
operator delete
(void*) noexcept¶
Friends
-
friend std::ostream &
operator<<
(std::ostream &os, const nexthop_group_programmed_status_t &obj)¶ A utility stream operator that adds a string representation of nexthop_group_programmed_status_t to the ostream.
-
-
enum