⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lookuplocalgridroute.hh

📁 COPE the first practical network coding scheme which is developped on click
💻 HH
字号:
#ifndef LOCALROUTE_HH#define LOCALROUTE_HH/* * =c * LookupLocalGridRoute(MAC-ADDRESS, IP-ADDRESS, GenericGridRouteTable, I<KEYWORDS>) * * =s Grid * =d  * Forward packets according to the tables accumulated by the * GenericGridRouteTable element.  MAC-ADDRESS and IP-ADDRESS are the local * machine's addresses. * * Input 0 is from the device, output 0 is to the device.  Both should * be GRID_NBR_ENCAP packets with MAC headers.  Output packets have * their paint annotation set to the output interface number, e.g. for * use with PaintSwitch. * * Input 1 is down from higher level protocols, output 1 is is up to * higher level protocols. The format of both is IP packets. * * Output 2 pushes out packets that LookupLocalGridRoute doesn't know * what to do with (we don't know have a route with a next hop), but * are still valid.  e.g. to be sent to geographic forwarding.  These * packets are GRID_NBR_ENCAP packets with MAC headers. * * Output 3 is the error output; it pushes out packets that are bad: * e.g., Grid protocol packets with an unknown type. * * Keywords are: * * =over 8 * * =item GWI * * GridGatewayInfo element.  If provided, and indicates this node is a * gateway, send incoming packets for the generic gateway address to * output 1. * * =item LOG * * GridGenericLogger element.  Object to log events to. * * =item LT * * LinkTracker element.  If provided, used to obtain link stats for * route callbacks.  Confused?  Me too! * * =back * * =a  * LookupGeographicGridRoute, GenericGridRouteTable, * GridGatewayInfo, LinkTracker, GridLogger, Paint, PaintSwitch */#include <click/element.hh>#include <click/glue.hh>#include <click/etheraddress.hh>#include <click/ipaddress.hh>#include <click/task.hh>#include <elements/grid/gridroutecb.hh>CLICK_DECLSclass GridGatewayInfo;class LinkTracker;class GridGenericLogger;class GridGenericRouteTable;class LookupLocalGridRoute : public Element, public GridRouteActor  {  public:  LookupLocalGridRoute();  ~LookupLocalGridRoute();  const char *class_name() const		{ return "LookupLocalGridRoute"; }  void *cast(const char *);  const char *processing() const		{ return PUSH; }    int configure(Vector<String> &, ErrorHandler *);  int initialize(ErrorHandler *);  void add_handlers();    bool run_task();  void push(int port, Packet *);private:  bool get_next_hop(IPAddress dest_ip, EtherAddress *dest_eth, 		    IPAddress *next_hop_ip, unsigned char *next_hop_interface) const;  void forward_grid_packet(Packet *packet, IPAddress dest_ip);  GridGatewayInfo *_gw_info;  LinkTracker *_link_tracker;  GridGenericRouteTable *_rtes;  EtherAddress _ethaddr;  IPAddress _ipaddr;  IPAddress _any_gateway_ip;  Task _task;  GridGenericLogger *_log;  bool is_gw();};CLICK_ENDDECLS#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -