|
|
This class links the VRRP state machine to the actual network.
typedef set<uint8_t> VRIDS | VRIDS |
VrrpVif (VrrpTarget& vt, const string& ifname, const string& vifname)
| VrrpVif |
Parameters:
vt | the VRRP target. |
ifname | the name of the physical interface. |
vifname | the name of the logical interface. |
~VrrpVif ()
| ~VrrpVif |
bool own (const IPv4& addr)
| own |
Check whether an IP address is configured on this interface.
Parameters:
addr | the IP address tocheck for. |
Returns: whether the given IP address is configured on the interface.
Reimplemented from VrrpInterface.
Vrrp* find_vrid (uint32_t vrid)
| find_vrid |
Look for a VRRP instance on this interface.
Parameters:
vrid | the VRRP ID to look for. |
Returns: a VRRP instance configured on this interface.
void add_vrid (uint32_t vrid)
| add_vrid |
Add a VRRP instance on this interface.
Parameters:
vrid | the router ID of this VRRP instance. |
void delete_vrid (uint32_t vrid)
| delete_vrid |
Delete a VRRP instance from this interface.
Parameters:
vrid | the router ID of the instance. |
bool ready ()
| ready |
[const]
Check whether the interface is up.
Returns: whether the interface is enabled.
Reimplemented from VrrpInterface.
void configure (const IfMgrIfTree& conf)
| configure |
Change the interface's configuration.
Parameters:
conf | the new configuration of the interface. |
const IPv4& addr ()
| addr |
[const]
Obtain the interface's primary IP address.
Returns: the primary IP address.
Reimplemented from VrrpInterface.
void send (const Mac& src, const Mac& dst, uint32_t ether,
const PAYLOAD& payload)
| send |
Send a L2 packet.
Parameters:
src | the source MAC address. |
dst | the destination MAC address. |
ether | the Ethernet type. |
payload | the data following the MAC header. |
Reimplemented from VrrpInterface.
void join_mcast ()
| join_mcast |
Join the VRRP multicast group.
Reimplemented from VrrpInterface.
void leave_mcast ()
| leave_mcast |
Leave the VRRP multicast group.
Reimplemented from VrrpInterface.
void recv (const IPv4& from, const PAYLOAD& payload)
| recv |
Receive an IP packet.
Parameters:
from | the source IP address. |
payload | the IP payload. |
void add_mac (const Mac& mac)
| add_mac |
Add a MAC address to this interface.
Parameters:
mac | MAC address to add. |
Reimplemented from VrrpInterface.
void delete_mac (const Mac& mac)
| delete_mac |
Delete a MAC address from this interface.
Parameters:
mac | MAC address to remove. |
Reimplemented from VrrpInterface.
void start_arps ()
| start_arps |
Start the reception of ARP packets.
Reimplemented from VrrpInterface.
void stop_arps ()
| stop_arps |
Stop the reception of ARP packets.
Reimplemented from VrrpInterface.
void recv_arp (const Mac& src, const PAYLOAD& payload)
| recv_arp |
Notify the reception of an ARP packet.
Parameters:
src | the source MAC address. |
payload | the ARP header and data. |
void get_vrids (VRIDS& vrids)
| get_vrids |
Obtain a list of VRRP instance configured on this interface.
Parameters:
vrids | the VRRP instances on this interface (output parameter). |
void xrl_cb (const XrlError& xrl_error)
| xrl_cb |
Callback on XRL error caused by this interface.
Parameters:
xrl_error | the error (if any). |