#include <InterfaceEntry.h>
Public Member Functions | |
InterfaceEntry () | |
virtual | ~InterfaceEntry () |
virtual std::string | info () const |
virtual std::string | detailedInfo () const |
int | interfaceId () const |
const char * | name () const |
int | networkLayerGateIndex () const |
int | nodeOutputGateId () const |
int | nodeInputGateId () const |
int | peerNamId () const |
int | mtu () const |
bool | isDown () const |
bool | isBroadcast () const |
bool | isMulticast () const |
bool | isPointToPoint () const |
bool | isLoopback () const |
double | datarate () const |
const MACAddress & | macAddress () const |
const InterfaceToken & | interfaceToken () const |
void | setName (const char *s) |
void | setNetworkLayerGateIndex (int i) |
void | setNodeOutputGateId (int i) |
void | setNodeInputGateId (int i) |
void | setPeerNamId (int ni) |
void | setMtu (int m) |
void | setDown (bool b) |
void | setBroadcast (bool b) |
void | setMulticast (bool b) |
void | setPointToPoint (bool b) |
void | setLoopback (bool b) |
void | setDatarate (double d) |
void | setMACAddress (const MACAddress &macAddr) |
void | setInterfaceToken (const InterfaceToken &token) |
IPv4InterfaceData * | ipv4 () |
IPv6InterfaceData * | ipv6 () |
cPolymorphic * | protocol3 () |
cPolymorphic * | protocol4 () |
void | setIPv4Data (IPv4InterfaceData *p) |
void | setIPv6Data (IPv6InterfaceData *p) |
void | setProtocol3Data (cPolymorphic *p) |
void | setProtocol4Data (cPolymorphic *p) |
Private Member Functions | |
InterfaceEntry (const InterfaceEntry &obj) | |
InterfaceEntry & | operator= (const InterfaceEntry &obj) |
Private Attributes | |
int | _interfaceId |
identifies the interface in the InterfaceTable | |
std::string | _name |
interface name (must be unique) | |
int | _nwLayerGateIndex |
index of ifIn[],ifOut[] gates to that interface (or -1 if virtual interface) | |
int | _nodeOutputGateId |
id of the output gate of this host/router (or -1 if this is a virtual interface) | |
int | _nodeInputGateId |
id of the input gate of this host/router (or -1 if this is a virtual interface) | |
int | _peernamid |
used only when writing ns2 nam traces | |
int | _mtu |
Maximum Transmission Unit (e.g. 1500 on Ethernet). | |
bool | _down |
current state (up or down) | |
bool | _broadcast |
interface supports broadcast | |
bool | _multicast |
interface supports multicast | |
bool | _pointToPoint |
interface is point-to-point link | |
bool | _loopback |
interface is loopback interface | |
double | _datarate |
data rate in bit/s | |
MACAddress | _macAddr |
link-layer address (for now, only IEEE 802 MAC addresses are supported) | |
InterfaceToken | _token |
for IPv6 stateless autoconfig (RFC 1971) | |
IPv4InterfaceData * | _ipv4data |
IPv4-specific interface info (IP address, etc). | |
IPv6InterfaceData * | _ipv6data |
IPv6-specific interface info (IPv6 addresses, etc). | |
cPolymorphic * | _protocol3data |
extension point: data for a 3rd network-layer protocol | |
cPolymorphic * | _protocol4data |
extension point: data for a 4th network-layer protocol | |
Friends | |
class | InterfaceTable |
InterfaceEntry::InterfaceEntry | ( | const InterfaceEntry & | obj | ) | [private] |
InterfaceEntry::InterfaceEntry | ( | ) |
00032 { 00033 _nwLayerGateIndex = -1; 00034 _nodeOutputGateId = -1; 00035 _nodeInputGateId = -1; 00036 _peernamid = -1; 00037 00038 _mtu = 0; 00039 00040 _down = false; 00041 _broadcast = false; 00042 _multicast = false; 00043 _pointToPoint= false; 00044 _loopback = false; 00045 _datarate = 0; 00046 00047 _ipv4data = NULL; 00048 _ipv6data = NULL; 00049 _protocol3data = NULL; 00050 _protocol4data = NULL; 00051 }
double InterfaceEntry::datarate | ( | ) | const [inline] |
std::string InterfaceEntry::detailedInfo | ( | ) | const [virtual] |
00085 { 00086 std::stringstream out; 00087 out << "name:" << (!_name.empty() ? name() : "*"); 00088 if (networkLayerGateIndex()==-1) 00089 out << " on:-"; 00090 else 00091 out << " on:nwLayer.ifOut[" << networkLayerGateIndex() << "]"; 00092 out << "MTU: " << mtu() << " \t"; 00093 if (isDown()) out << "DOWN "; 00094 if (isBroadcast()) out << "BROADCAST "; 00095 if (isMulticast()) out << "MULTICAST "; 00096 if (isPointToPoint()) out << "POINTTOPOINT "; 00097 if (isLoopback()) out << "LOOPBACK "; 00098 out << "\n"; 00099 out << " macAddr:"; 00100 if (macAddress().isUnspecified()) 00101 out << "n/a"; 00102 else 00103 out << macAddress(); 00104 out << "\n"; 00105 if (_ipv4data) 00106 out << " " << ((cPolymorphic*)_ipv4data)->info() << "\n"; // Khmm... 00107 if (_ipv6data) 00108 out << " " << ((cPolymorphic*)_ipv6data)->info() << "\n"; // Khmm... 00109 if (_protocol3data) 00110 out << " " << _protocol3data->info() << "\n"; 00111 if (_protocol4data) 00112 out << " " << _protocol4data->info() << "\n"; 00113 00114 return out.str(); 00115 }
std::string InterfaceEntry::info | ( | ) | const [virtual] |
00054 { 00055 std::stringstream out; 00056 out << (!_name.empty() ? name() : "*"); 00057 if (networkLayerGateIndex()==-1) 00058 out << " on:-"; 00059 else 00060 out << " on:nwLayer.ifOut[" << networkLayerGateIndex() << "]"; 00061 out << " MTU:" << mtu(); 00062 if (isDown()) out << " DOWN"; 00063 if (isBroadcast()) out << " BROADCAST"; 00064 if (isMulticast()) out << " MULTICAST"; 00065 if (isPointToPoint()) out << " POINTTOPOINT"; 00066 if (isLoopback()) out << " LOOPBACK"; 00067 out << " macAddr:"; 00068 if (macAddress().isUnspecified()) 00069 out << "n/a"; 00070 else 00071 out << macAddress(); 00072 00073 if (_ipv4data) 00074 out << " " << ((cPolymorphic*)_ipv4data)->info(); // Khmm... 00075 if (_ipv6data) 00076 out << " " << ((cPolymorphic*)_ipv6data)->info(); // Khmm... 00077 if (_protocol3data) 00078 out << " " << _protocol3data->info(); 00079 if (_protocol4data) 00080 out << " " << _protocol4data->info(); 00081 return out.str(); 00082 }
int InterfaceEntry::interfaceId | ( | ) | const [inline] |
const InterfaceToken& InterfaceEntry::interfaceToken | ( | ) | const [inline] |
IPv4InterfaceData* InterfaceEntry::ipv4 | ( | ) | [inline] |
IPv6InterfaceData* InterfaceEntry::ipv6 | ( | ) | [inline] |
bool InterfaceEntry::isBroadcast | ( | ) | const [inline] |
bool InterfaceEntry::isDown | ( | ) | const [inline] |
bool InterfaceEntry::isLoopback | ( | ) | const [inline] |
bool InterfaceEntry::isMulticast | ( | ) | const [inline] |
bool InterfaceEntry::isPointToPoint | ( | ) | const [inline] |
const MACAddress& InterfaceEntry::macAddress | ( | ) | const [inline] |
int InterfaceEntry::mtu | ( | ) | const [inline] |
const char* InterfaceEntry::name | ( | ) | const [inline] |
int InterfaceEntry::networkLayerGateIndex | ( | ) | const [inline] |
int InterfaceEntry::nodeInputGateId | ( | ) | const [inline] |
int InterfaceEntry::nodeOutputGateId | ( | ) | const [inline] |
InterfaceEntry& InterfaceEntry::operator= | ( | const InterfaceEntry & | obj | ) | [private] |
int InterfaceEntry::peerNamId | ( | ) | const [inline] |
cPolymorphic* InterfaceEntry::protocol3 | ( | ) | [inline] |
cPolymorphic* InterfaceEntry::protocol4 | ( | ) | [inline] |
void InterfaceEntry::setBroadcast | ( | bool | b | ) | [inline] |
void InterfaceEntry::setDatarate | ( | double | d | ) | [inline] |
void InterfaceEntry::setDown | ( | bool | b | ) | [inline] |
void InterfaceEntry::setInterfaceToken | ( | const InterfaceToken & | token | ) | [inline] |
void InterfaceEntry::setIPv4Data | ( | IPv4InterfaceData * | p | ) | [inline] |
void InterfaceEntry::setIPv6Data | ( | IPv6InterfaceData * | p | ) | [inline] |
void InterfaceEntry::setLoopback | ( | bool | b | ) | [inline] |
void InterfaceEntry::setMACAddress | ( | const MACAddress & | macAddr | ) | [inline] |
void InterfaceEntry::setMtu | ( | int | m | ) | [inline] |
void InterfaceEntry::setMulticast | ( | bool | b | ) | [inline] |
void InterfaceEntry::setName | ( | const char * | s | ) | [inline] |
void InterfaceEntry::setNetworkLayerGateIndex | ( | int | i | ) | [inline] |
void InterfaceEntry::setNodeInputGateId | ( | int | i | ) | [inline] |
void InterfaceEntry::setNodeOutputGateId | ( | int | i | ) | [inline] |
void InterfaceEntry::setPeerNamId | ( | int | ni | ) | [inline] |
void InterfaceEntry::setPointToPoint | ( | bool | b | ) | [inline] |
void InterfaceEntry::setProtocol3Data | ( | cPolymorphic * | p | ) | [inline] |
void InterfaceEntry::setProtocol4Data | ( | cPolymorphic * | p | ) | [inline] |
friend class InterfaceTable [friend] |
bool InterfaceEntry::_broadcast [private] |
interface supports broadcast
double InterfaceEntry::_datarate [private] |
data rate in bit/s
bool InterfaceEntry::_down [private] |
current state (up or down)
int InterfaceEntry::_interfaceId [private] |
identifies the interface in the InterfaceTable
IPv4InterfaceData* InterfaceEntry::_ipv4data [private] |
IPv4-specific interface info (IP address, etc).
IPv6InterfaceData* InterfaceEntry::_ipv6data [private] |
IPv6-specific interface info (IPv6 addresses, etc).
bool InterfaceEntry::_loopback [private] |
interface is loopback interface
MACAddress InterfaceEntry::_macAddr [private] |
link-layer address (for now, only IEEE 802 MAC addresses are supported)
int InterfaceEntry::_mtu [private] |
Maximum Transmission Unit (e.g. 1500 on Ethernet).
bool InterfaceEntry::_multicast [private] |
interface supports multicast
std::string InterfaceEntry::_name [private] |
interface name (must be unique)
int InterfaceEntry::_nodeInputGateId [private] |
id of the input gate of this host/router (or -1 if this is a virtual interface)
int InterfaceEntry::_nodeOutputGateId [private] |
id of the output gate of this host/router (or -1 if this is a virtual interface)
int InterfaceEntry::_nwLayerGateIndex [private] |
index of ifIn[],ifOut[] gates to that interface (or -1 if virtual interface)
int InterfaceEntry::_peernamid [private] |
used only when writing ns2 nam traces
bool InterfaceEntry::_pointToPoint [private] |
interface is point-to-point link
cPolymorphic* InterfaceEntry::_protocol3data [private] |
extension point: data for a 3rd network-layer protocol
cPolymorphic* InterfaceEntry::_protocol4data [private] |
extension point: data for a 4th network-layer protocol
InterfaceToken InterfaceEntry::_token [private] |
for IPv6 stateless autoconfig (RFC 1971)