class XrlRawSocket4Manager

A class that manages raw sockets as used by the XORP Xrl Interface. More...

 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Methods

Protected Types

Protected Methods

Protected Members


Detailed Description

The XrlRawSocket4Manager has two containers: a container for raw sockets indexed by the protocol associated with the raw socket, and a container for the filters associated with each xrl_target. When an Xrl Target registers for interest in a particular type of raw packet a raw socket (FilterRawSocket4) is created if necessary, then the relevent filter is created and associated with the RawSocket.

 XrlRawSocket4Manager (EventLoop& eventloop, InterfaceManager& ifmgr, XrlRouter& xr)
throw (RawSocket4Exception)

XrlRawSocket4Manager

Contructor for XrlRawSocket4Manager instances.

May throw RawSocket4Exception since a raw socket is contructed and this requires root privelage.

 ~XrlRawSocket4Manager ()

~XrlRawSocket4Manager

XrlCmdError  send (const string& vifname, const vector<uint8_t>& packet)

send

XrlCmdError  send (const IPv4& src_address, const IPv4& dst_address, const string& vifname, const uint32_t& proto, const uint32_t& ttl, const uint32_t& tos, const vector<uint8_t>& options, const vector<uint8_t>& payload)

send

XrlCmdError  register_vif_receiver (const string& tgt, const string& ifname, const string& vifname, const uint32_t& proto)

register_vif_receiver

XrlCmdError  unregister_vif_receiver (const string& tgt, const string& ifname, const string& vifname, const uint32_t& proto)

unregister_vif_receiver

XrlRouter&  router ()

router

InterfaceManager&  ifmgr ()

ifmgr

void  xrl_vif_send_handler (const XrlError& e, string tgt_name)

xrl_vif_send_handler

EventLoop& _eventloop

_eventloop

[protected]

InterfaceManager& _ifmgr

_ifmgr

[protected]

XrlRouter& _xrlrouter

_xrlrouter

[protected]

FilterRawSocket4 _rs

_rs

[protected]

typedef multimap<string, XrlRawSocket4Filter*> FilterBag4

FilterBag4

[protected]

FilterBag4 _filters

_filters

[protected]

void  erase_filters (const FilterBag4::iterator& begin, const FilterBag4::iterator& end)

erase_filters

[protected]


Generated by: pavlin on possum.icir.org on Wed Apr 13 21:53:05 2005, using kdoc $.