#ifndef CLICK_GRIDENCAP_HH
#define CLICK_GRIDENCAP_HH
#include <click/element.hh>
#include <click/glue.hh>
#include <click/ipaddress.hh>
#include <click/etheraddress.hh>
#include <clicknet/ether.h>
#include <elements/grid/grid.hh>
CLICK_DECLS
/*
* =c
*
* GridEncap(MAC-ADDRESS, IP-ADDRESS)
*
* =s Grid
*
* Encapsulates packets in static Grid data encapsulation header
* (GRID_NBR_ENCAP), including ethernet, Grid, and grid data encap
* headers.
*
* =d
*
* MAC-ADDRESS and IP-ADDRESS are this node's ethernet and IP
* addresses, respectively. Sets the ethernet type to the Grid
* ethertype; sets the ethernet source address to MAC-ADDRESS. Sets the Grid
* src and tx IP to be IP-ADDRESS. Sets all locations to invalid.
* Does not set checksum.
*
* Sets the grid destination IP to the packet's dest_ip annotation.
*
*
* =a LookupLocalGridRoute, FixSrcLoc, FixDstLoc, SetGridChecksum */
class GridEncap : public Element { public:
GridEncap();
~GridEncap();
const char *class_name() const { return "GridEncap"; }
const char *port_count() const { return PORTS_1_1; }
const char *processing() const { return AGNOSTIC; }
int configure(Vector<String> &, ErrorHandler *);
bool can_live_reconfigure() const { return true; }
int initialize(ErrorHandler *);
Packet *simple_action(Packet *);
private:
EtherAddress _eth;
IPAddress _ip;
click_ether _eh;
grid_hdr _gh;
grid_nbr_encap _nb;
};
CLICK_ENDDECLS
#endif
syntax highlighted by Code2HTML, v. 0.9.1