|
|
The real receiver must inherit from this class and register with the corresponding IoIp entity to receive the raw IP packets.
See also: IoIp.
IoIpReceiver ()
| IoIpReceiver |
~IoIpReceiver ()
| ~IoIpReceiver |
[virtual]
void recv_packet (const string& if_name,
const string& vif_name,
const IPvX& src_address,
const IPvX& dst_address,
int32_t ip_ttl,
int32_t ip_tos,
bool ip_router_alert,
bool ip_internet_control,
const vector<uint8_t>& ext_headers_type,
const vector<vector<uint8_t> >& ext_headers_payload,
const vector<uint8_t>& payload)
| recv_packet |
[pure virtual]
Received a raw IP packet.
Parameters:
if_name | the interface name the packet arrived on. |
vif_name | the vif name the packet arrived on. |
src_address | the IP source address. |
dst_address | the IP destination address. |
ip_ttl | the IP TTL (hop-limit). If it has a negative value, then the received value is unknown. |
ip_tos | The type of service (Diffserv/ECN bits for IPv4). If it has a negative value, then the received value is unknown. |
ip_router_alert | if true, the IP Router Alert option was included in the IP packet. |
ip_internet_control | if true, then this is IP control traffic. |
ext_headers_type | a vector of integers with the types of the optional IPv6 extention headers. |
ext_headers_payload | a vector of payload data, one for each optional IPv6 extention header. The number of entries must match ext_headers_type. |
packet | the payload, everything after the IP header and options. |
void recv_system_multicast_upcall (const vector<uint8_t>& payload)
| recv_system_multicast_upcall |
[pure virtual]
Received a multicast forwarding related upcall from the system.
Examples of such upcalls are: "nocache", "wrongiif", "wholepkt", "bw_upcall".
Parameters:
payload | the payload data for the upcall. |