xorp

XrlRawPacket4V0p1Client Class Reference

List of all members.

Public Types

typedef XorpCallback1< void,
const XrlError & >::RefPtr 
SendCB
typedef XorpCallback1< void,
const XrlError & >::RefPtr 
RegisterReceiverCB
typedef XorpCallback1< void,
const XrlError & >::RefPtr 
UnregisterReceiverCB
typedef XorpCallback1< void,
const XrlError & >::RefPtr 
JoinMulticastGroupCB
typedef XorpCallback1< void,
const XrlError & >::RefPtr 
LeaveMulticastGroupCB
typedef XorpCallback1< void,
const XrlError & >::RefPtr 
SendCB
typedef XorpCallback1< void,
const XrlError & >::RefPtr 
RegisterReceiverCB
typedef XorpCallback1< void,
const XrlError & >::RefPtr 
UnregisterReceiverCB
typedef XorpCallback1< void,
const XrlError & >::RefPtr 
JoinMulticastGroupCB
typedef XorpCallback1< void,
const XrlError & >::RefPtr 
LeaveMulticastGroupCB

Public Member Functions

 XrlRawPacket4V0p1Client (XrlSender *s)
bool send_send (const char *dst_xrl_target_name, const string &if_name, const string &vif_name, const IPv4 &src_address, const IPv4 &dst_address, const uint32_t &ip_protocol, const int32_t &ip_ttl, const int32_t &ip_tos, const bool &ip_router_alert, const bool &ip_internet_control, const vector< uint8_t > &payload, const SendCB &cb)
 Send Xrl intended to:
bool send_register_receiver (const char *dst_xrl_target_name, const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ip_protocol, const bool &enable_multicast_loopback, const RegisterReceiverCB &cb)
 Send Xrl intended to:
bool send_unregister_receiver (const char *dst_xrl_target_name, const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ip_protocol, const UnregisterReceiverCB &cb)
 Send Xrl intended to:
bool send_join_multicast_group (const char *dst_xrl_target_name, const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ip_protocol, const IPv4 &group_address, const JoinMulticastGroupCB &cb)
 Send Xrl intended to:
bool send_leave_multicast_group (const char *dst_xrl_target_name, const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ip_protocol, const IPv4 &group_address, const LeaveMulticastGroupCB &cb)
 Send Xrl intended to:
 XrlRawPacket4V0p1Client (XrlSender *s)
bool send_send (const char *dst_xrl_target_name, const string &if_name, const string &vif_name, const IPv4 &src_address, const IPv4 &dst_address, const uint32_t &ip_protocol, const int32_t &ip_ttl, const int32_t &ip_tos, const bool &ip_router_alert, const bool &ip_internet_control, const vector< uint8_t > &payload, const SendCB &cb)
 Send Xrl intended to:
bool send_register_receiver (const char *dst_xrl_target_name, const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ip_protocol, const bool &enable_multicast_loopback, const RegisterReceiverCB &cb)
 Send Xrl intended to:
bool send_unregister_receiver (const char *dst_xrl_target_name, const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ip_protocol, const UnregisterReceiverCB &cb)
 Send Xrl intended to:
bool send_join_multicast_group (const char *dst_xrl_target_name, const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ip_protocol, const IPv4 &group_address, const JoinMulticastGroupCB &cb)
 Send Xrl intended to:
bool send_leave_multicast_group (const char *dst_xrl_target_name, const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ip_protocol, const IPv4 &group_address, const LeaveMulticastGroupCB &cb)
 Send Xrl intended to:

Protected Attributes

XrlSender_sender

Static Private Member Functions

static void unmarshall_send (const XrlError &e, XrlArgs *a, SendCB cb)
static void unmarshall_register_receiver (const XrlError &e, XrlArgs *a, RegisterReceiverCB cb)
static void unmarshall_unregister_receiver (const XrlError &e, XrlArgs *a, UnregisterReceiverCB cb)
static void unmarshall_join_multicast_group (const XrlError &e, XrlArgs *a, JoinMulticastGroupCB cb)
static void unmarshall_leave_multicast_group (const XrlError &e, XrlArgs *a, LeaveMulticastGroupCB cb)
static void unmarshall_send (const XrlError &e, XrlArgs *a, SendCB cb)
static void unmarshall_register_receiver (const XrlError &e, XrlArgs *a, RegisterReceiverCB cb)
static void unmarshall_unregister_receiver (const XrlError &e, XrlArgs *a, UnregisterReceiverCB cb)
static void unmarshall_join_multicast_group (const XrlError &e, XrlArgs *a, JoinMulticastGroupCB cb)
static void unmarshall_leave_multicast_group (const XrlError &e, XrlArgs *a, LeaveMulticastGroupCB cb)

Private Attributes

auto_ptr< Xrlap_xrl_send
auto_ptr< Xrlap_xrl_register_receiver
auto_ptr< Xrlap_xrl_unregister_receiver
auto_ptr< Xrlap_xrl_join_multicast_group
auto_ptr< Xrlap_xrl_leave_multicast_group

Member Function Documentation

bool XrlRawPacket4V0p1Client::send_join_multicast_group ( const char *  dst_xrl_target_name,
const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ip_protocol,
const IPv4 group_address,
const JoinMulticastGroupCB &  cb 
)

Send Xrl intended to:

Join an IPv4 multicast group.

Parameters:
dst_xrl_target_namethe Xrl target name of the destination.
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should be accepted.
vif_namethe vif through which packets should be accepted.
ip_protocolthe IP protocol number that the receiver is interested in. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.
group_addressthe multicast group address to join.
bool XrlRawPacket4V0p1Client::send_join_multicast_group ( const char *  dst_xrl_target_name,
const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ip_protocol,
const IPv4 group_address,
const JoinMulticastGroupCB &  cb 
)

Send Xrl intended to:

Join an IPv4 multicast group.

Parameters:
dst_xrl_target_namethe Xrl target name of the destination.
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should be accepted.
vif_namethe vif through which packets should be accepted.
ip_protocolthe IP protocol number that the receiver is interested in. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.
group_addressthe multicast group address to join.
bool XrlRawPacket4V0p1Client::send_leave_multicast_group ( const char *  dst_xrl_target_name,
const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ip_protocol,
const IPv4 group_address,
const LeaveMulticastGroupCB &  cb 
)

Send Xrl intended to:

Leave an IPv4 multicast group.

Parameters:
dst_xrl_target_namethe Xrl target name of the destination.
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should not be accepted.
vif_namethe vif through which packets should not be accepted.
ip_protocolthe IP protocol number that the receiver is not interested in anymore. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.
group_addressthe multicast group address to leave.
bool XrlRawPacket4V0p1Client::send_leave_multicast_group ( const char *  dst_xrl_target_name,
const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ip_protocol,
const IPv4 group_address,
const LeaveMulticastGroupCB &  cb 
)

Send Xrl intended to:

Leave an IPv4 multicast group.

Parameters:
dst_xrl_target_namethe Xrl target name of the destination.
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should not be accepted.
vif_namethe vif through which packets should not be accepted.
ip_protocolthe IP protocol number that the receiver is not interested in anymore. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.
group_addressthe multicast group address to leave.
bool XrlRawPacket4V0p1Client::send_register_receiver ( const char *  dst_xrl_target_name,
const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ip_protocol,
const bool &  enable_multicast_loopback,
const RegisterReceiverCB &  cb 
)

Send Xrl intended to:

Register to receive IPv4 packets. The receiver is expected to support raw_packet4_client/0.1 interface.

Parameters:
dst_xrl_target_namethe Xrl target name of the destination.
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should be accepted.
vif_namethe vif through which packets should be accepted.
ip_protocolthe IP protocol number that the receiver is interested in. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.
enable_multicast_loopbackif true then enable delivering of multicast datagrams back to this host (assuming the host is a member of the same multicast group.
bool XrlRawPacket4V0p1Client::send_register_receiver ( const char *  dst_xrl_target_name,
const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ip_protocol,
const bool &  enable_multicast_loopback,
const RegisterReceiverCB &  cb 
)

Send Xrl intended to:

Register to receive IPv4 packets. The receiver is expected to support raw_packet4_client/0.1 interface.

Parameters:
dst_xrl_target_namethe Xrl target name of the destination.
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should be accepted.
vif_namethe vif through which packets should be accepted.
ip_protocolthe IP protocol number that the receiver is interested in. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.
enable_multicast_loopbackif true then enable delivering of multicast datagrams back to this host (assuming the host is a member of the same multicast group.
bool XrlRawPacket4V0p1Client::send_send ( const char *  dst_xrl_target_name,
const string &  if_name,
const string &  vif_name,
const IPv4 src_address,
const IPv4 dst_address,
const uint32_t &  ip_protocol,
const int32_t &  ip_ttl,
const int32_t &  ip_tos,
const bool &  ip_router_alert,
const bool &  ip_internet_control,
const vector< uint8_t > &  payload,
const SendCB &  cb 
)

Send Xrl intended to:

Send an IPv4 packet on a raw socket.

Parameters:
dst_xrl_target_namethe Xrl target name of the destination.
if_namethe interface to send the packet on. It is essential for multicast. In the unicast case this field may be empty.
vif_namethe vif to send the packet on. It is essential for multicast. In the unicast case this field may be empty.
src_addressthe IP source address.
dst_addressthe IP destination address.
ip_protocolthe IP protocol number. It must be between 1 and 255.
ip_ttlthe IP TTL (hop-limit). If it has a negative value, the TTL will be set internally before transmission.
ip_tosthe Type Of Service (Diffserv/ECN bits for IPv4). If it has a negative value, the TOS will be set internally before transmission.
ip_router_alertif true, then add the IP Router Alert option to the IP packet.
ip_internet_controlif true, then this is IP control traffic.
payloadthe payload, everything after the IP header and options.
bool XrlRawPacket4V0p1Client::send_send ( const char *  dst_xrl_target_name,
const string &  if_name,
const string &  vif_name,
const IPv4 src_address,
const IPv4 dst_address,
const uint32_t &  ip_protocol,
const int32_t &  ip_ttl,
const int32_t &  ip_tos,
const bool &  ip_router_alert,
const bool &  ip_internet_control,
const vector< uint8_t > &  payload,
const SendCB &  cb 
)

Send Xrl intended to:

Send an IPv4 packet on a raw socket.

Parameters:
dst_xrl_target_namethe Xrl target name of the destination.
if_namethe interface to send the packet on. It is essential for multicast. In the unicast case this field may be empty.
vif_namethe vif to send the packet on. It is essential for multicast. In the unicast case this field may be empty.
src_addressthe IP source address.
dst_addressthe IP destination address.
ip_protocolthe IP protocol number. It must be between 1 and 255.
ip_ttlthe IP TTL (hop-limit). If it has a negative value, the TTL will be set internally before transmission.
ip_tosthe Type Of Service (Diffserv/ECN bits for IPv4). If it has a negative value, the TOS will be set internally before transmission.
ip_router_alertif true, then add the IP Router Alert option to the IP packet.
ip_internet_controlif true, then this is IP control traffic.
payloadthe payload, everything after the IP header and options.
bool XrlRawPacket4V0p1Client::send_unregister_receiver ( const char *  dst_xrl_target_name,
const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ip_protocol,
const UnregisterReceiverCB &  cb 
)

Send Xrl intended to:

Unregister to receive IPv4 packets.

Parameters:
dst_xrl_target_namethe Xrl target name of the destination.
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should not be accepted.
vif_namethe vif through which packets should not be accepted.
ip_protocolthe IP Protocol number that the receiver is not interested in anymore. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.
bool XrlRawPacket4V0p1Client::send_unregister_receiver ( const char *  dst_xrl_target_name,
const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ip_protocol,
const UnregisterReceiverCB &  cb 
)

Send Xrl intended to:

Unregister to receive IPv4 packets.

Parameters:
dst_xrl_target_namethe Xrl target name of the destination.
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should not be accepted.
vif_namethe vif through which packets should not be accepted.
ip_protocolthe IP Protocol number that the receiver is not interested in anymore. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.

The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations