class Vif

Virtual Interface class. More...

 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Types

Public Methods


Detailed Description

Vif holds information about a virtual interface. A Vif may represent a physical interface, or may represent more abstract entities such as the Discard interface, or a VLAN on a physical interface.

explicit  Vif (const string& vifname, const string& ifname = string(""))

Vif

Constructor for a given virtual interface name.

Parameters:

vifnamestring representation of the virtual interface (e.g., "port 0").
ifnamestring representation of associated interface.
 Vif (const Vif& vif)

Vif

Constructor to clone a Vif.

Parameters:

vifthe virtual interface to clone.
 ~Vif ()

~Vif

[virtual]

Destructor

string  str ()

str

[const]

Convert this Vif from binary form to presentation format.

Returns: C++ string with the human-readable ASCII representation of the Vif.

bool  operator== (const Vif& other)

operator==

[const]

Equality Operator

Parameters:

otherthe right-hand operand to compare against.

Returns: true if the left-hand operand is numerically same as the right-hand operand.

const string&  name ()

name

[const]

Get the vif name.

Returns: a string representation of the vif name.

const string&  ifname ()

ifname

[const]

Get the name of the physical interface associated with vif.

Returns: string representation of interface name.

void  set_ifname (const string& ifname)

set_ifname

Set the name of the physical interface associated with vif.

Parameters:

ifname
uint32_t  pif_index ()

pif_index

[const]

Get the physical interface index.

Returns: the physical interface index (if applicable).

void  set_pif_index (uint32_t v)

set_pif_index

Set the physical interface index.

Parameters:

vthe value of the physical interface index to set to.
enum { VIF_INDEX_INVALID = ((uint32_t)~0), VIF_INDEX_MAX = ((uint32_t)~0) }

Various vif_index related values.

const uint32_t  vif_index ()

vif_index

[const]

Get the virtual interface index.

Returns: the virtual interface index.

void  set_vif_index (uint32_t v)

set_vif_index

Set the virtual interface index.

Parameters:

vthe value of the virtual interface index to set to.
bool  is_pim_register ()

is_pim_register

[const]

Test if this vif is a PIM Register interface.

Returns: true if this vif is a PIM Register interface, otherwise false.

bool  is_p2p ()

is_p2p

[const]

Test if this vif is a point-to-point interface.

Returns: true if this vif is a point-to-point interface, otherwise false.

bool  is_loopback ()

is_loopback

[const]

Test if this vif is a loopback interface.

Returns: true if this vif is a loopback interface, otherwise false.

bool  is_discard ()

is_discard

[const]

Test if this vif is a discard interface.

Returns: true if this vif is a discard interface, otherwise false.

bool  is_multicast_capable ()

is_multicast_capable

[const]

Test if this vif is multicast capable.

Returns: true if this vif is multicast capable, otherwise false.

bool  is_broadcast_capable ()

is_broadcast_capable

[const]

Test if this vif is broadcast capable.

Returns: true if this vif is broadcast capable, otherwise false.

bool  is_underlying_vif_up ()

is_underlying_vif_up

[const]

Test if the underlying vif is UP.

An example of an underlying vif is the corresponding interface inside the kernel, or the MFEA interface which a PIM interface matches to.

Returns: true if the underlying vif is UP (when applicable), otherwise false.

uint32_t  mtu ()

mtu

[const]

Get the MTU of the vif.

Returns: the MTU of the vif.

void  set_pim_register (bool v)

set_pim_register

Set/reset the vif as a PIM Register interface.

Parameters:

vif true, then set this vif as a PIM Register interface, otherwise reset it.
void  set_p2p (bool v)

set_p2p

Set/reset the vif as a point-to-point interface.

Parameters:

vif true, then set this vif as a point-to-point interface, otherwise reset it.
void  set_loopback (bool v)

set_loopback

Set/reset the vif as a loopback interface.

Parameters:

vif true, then set this vif as a loopback interface, otherwise reset it.
void  set_discard (bool v)

set_discard

Set/reset the vif as a discard interface.

Parameters:

vif true, then set this vif as a discard interface, otherwise reset it.
void  set_multicast_capable (bool v)

set_multicast_capable

Set/reset the vif as multicast capable.

Parameters:

vif true, then set this vif as multicast capable, otherwise reset it.
void  set_broadcast_capable (bool v)

set_broadcast_capable

Set/reset the vif as broadcast capable.

Parameters:

vif true, then set this vif as broadcast capable, otherwise reset it.
void  set_underlying_vif_up (bool v)

set_underlying_vif_up

Set/reset the underlying vif status (when applicable).

An example of an underlying vif is the corresponding interface inside the kernel, or the MFEA interface which a PIM interface matches to.

Parameters:

vif true, then set the underlying vif status as UP, otherwise the underlying vif status is set to DOWN.
void  set_mtu (uint32_t v)

set_mtu

Set the MTU of the vif.

Parameters:

vthe MTU of the vif.
const list<VifAddr>&  addr_list ()

addr_list

[const]

Get the list of all addresses for this vif.

Returns: the list of all addresses for this vif (VifAddr).

const IPvX*  addr_ptr ()

addr_ptr

[const]

Get the first vif address.

Returns: a pointer to the first valid interface address of this vif, or NULL if no addresses.

int  add_address (const VifAddr& vif_addr)

add_address

Add a VifAddr address to the interface.

Parameters:

vif_addrthe VifAddr (VifAddr) to add to the list of addresses for this vif.

Returns: XORP_OK if a new address, otherwise XORP_ERROR.

int  add_address (const IPvX& ipvx_addr, const IPvXNet& ipvxnet_subnet_addr, const IPvX& ipvx_broadcast_addr, const IPvX& ipvx_peer_addr)

add_address

Add an IPvX address and all related information to the interface.

Parameters:

ipvx_addrthe interface address.
ipvxnet_subnet_addrthe subnet address.
ipvx_broadcast_addrthe broadcast address.
ipvx_peer_addrthe peer address.

Returns: XORP_OK if a new address, otherwise XORP_ERROR.

int  add_address (const IPvX& ipvx_addr)

add_address

Add an IPvX address to the interface.

Parameters:

ipvx_addrthe interface address.

Returns: XORP_OK if a new address, otherwise XORP_ERROR.

int  delete_address (const IPvX& ipvx_addr)

delete_address

Delete an IPvX address from the interface.

Returns: XORP_OK on success, otherwise XORP_ERROR.

VifAddrfind_address (const IPvX& ipvx_addr)

find_address

Find a VifAddr that corresponds to an IPvX address.

Parameters:

ipvx_addrthe IPvX address to search for.

Returns: a pointer to the VifAddr for address ipvx_addr if found, otherwise NULL.

bool  is_my_addr (const IPvX& ipvx_addr)

is_my_addr

[const]

Test if an IPvX address belongs to this vif.

Parameters:

ipvx_addrthe IPvX address to test whether belongs to this vif.

Returns: true if ipvx_addr belongs to this vif, otherwise false.

bool  is_my_vif_addr (const VifAddr& vif_addr)

is_my_vif_addr

[const]

Test if an VifAddr is belongs to this vif.

Parameters:

vif_addrthe VifAddr address to test whether belongs to this vif.

Returns: true if vif_addr belongs to this vif, otherwise false.

bool  is_same_subnet (const IPvXNet& ipvxnet)

is_same_subnet

[const]

Test if a given subnet address is a subset of one of the subnet addresses of this vif.

Parameters:

ipvxnetthe subnet address to test against.

Returns: true if ipvxnet is a subset of one of the subnet addresses of this vif, otherwise false.

bool  is_same_subnet (const IPvX& ipvx_addr)

is_same_subnet

[const]

Test if a given address belongs to one of the subnet addresses of this vif.

Parameters:

ipvx_addrthe address to test against.

Returns: true if ipvx_addr belongs to one of the subnet addresses of this vif, otherwise false.

bool  is_same_p2p (const IPvX& ipvx_addr)

is_same_p2p

[const]

Test if a given address belongs to the same point-to-point link as this vif.

Parameters:

ipvx_addrthe address to test against.

Returns: true if ipvx_addr belongs to the same point-to-point link as this vif, otherwise false.


Generated by: pavlin on possum.icir.org on Wed Aug 2 15:35:43 2006, using kdoc $.