#ifndef CLICK_SETIP6DSCP_HH
#define CLICK_SETIP6DSCP_HH
/*
* =c
* SetIP6DSCP(VAL)
* =s ip6
* sets IP6 packets' DSCP fields
* =d
* Expects IP6 packets as input and
* sets their Differential Services Code Point to VAL
* and passes the packet to output 0.
* The DSCP is the upper 6 bits of the IP6 TRAFFIC CLASS field.
*/
#include <click/element.hh>
#include <click/glue.hh>
#include <clicknet/ip6.h>
CLICK_DECLS
class SetIP6DSCP : public Element {
uint32_t _dscp;
public:
SetIP6DSCP();
~SetIP6DSCP();
const char *class_name() const { return "SetIP6DSCP"; }
const char *port_count() const { return PORTS_1_1; }
const char *processing() const { return AGNOSTIC; }
uint8_t dscp() const { return _dscp >> IP6_DSCP_SHIFT; }
int configure(const Vector<String> &, ErrorHandler *);
bool can_live_reconfigure() const { return true; }
void add_handlers();
inline Packet *smaction(Packet *);
void push(int, Packet *p);
Packet *pull(int);
};
CLICK_ENDDECLS
#endif
syntax highlighted by Code2HTML, v. 0.9.1