#ifndef CLICK_DECIP6HLIM_HH
#define CLICK_DECIP6HLIM_HH
#include <click/element.hh>
#include <click/glue.hh>
CLICK_DECLS
/*
* =c
* DecIP6HLIM()
* =s ip6
*
* =d
* Expects IP6 packet as input.
* If the hlim is <= 1 (i.e. has expired),
* DecIP6HLIM sends the packet to output 1 (or discards it if there is no
* output 1).
* Otherwise it decrements the hlim,
* and sends the packet to output 0.
*
* Ordinarily output 1 is connected to an ICMP6 error packet generator.
*
* =e
* This is a typical IP6 input processing sequence:
*
* ... -> CheckIP6Header -> dt::DecIP6HLIM -> ...
* dt[1] -> ICMP6Error(...) -> ...
*
* =a ICMP6Error, CheckIP6Header
*/
class DecIP6HLIM : public Element {
int _drops;
public:
DecIP6HLIM();
~DecIP6HLIM();
const char *class_name() const { return "DecIP6HLIM"; }
const char *port_count() const { return "1/1-2"; }
const char *processing() const { return "a/ah"; }
int drops() { return _drops; }
void add_handlers();
Packet *simple_action(Packet *);
void drop_it(Packet *);
};
CLICK_ENDDECLS
#endif
syntax highlighted by Code2HTML, v. 0.9.1