📄 decoder.hh
字号:
#ifndef DECODER_HH#define DECODER_HHCLICK_DECLS/* * =c * Decoder () * =s Wifi, Wireless Routing * decodes received packets * =d * * Input 0: packets for decoding * Output 0: decoded packets for normal processing (push) */#include<click/element.hh>//#include<click/bighashmap.hh>#include<click/timer.hh>#include<click/packet.hh>#include <click/ipaddress.hh>//#include <click/string.hh>#include "sendmanager.hh"#include "scramblequeue.hh"#include "recvmanager.hh"class EtherAddress;class Decoder : public Element, public Xorer { public: Decoder(); ~Decoder(); const char *class_name() const { return "Decoder"; } const char *processing() const { return PUSH;} void *cast(const char *); int configure(Vector<String> &conf, ErrorHandler *); void add_handlers(); static String stats(Element *, void *); static int static_clear(const String &arg, Element *e, void *, ErrorHandler *errh); void push(int, Packet *); // for statistics int _decodedpkts; // counts how many packets have been decoded // int _overheard; // how many encoded packets overheard that's not for me int _undecodable; // packets that cannot be decoded due to missing matching packets int _duplicatepkts; // duplicate encoded packets received int _nnewpkts; // number of new packets int _decodedbytes; // number of decoded bytes int _duplicatebytes; // number of duplicate bytes int _nnewbytes; // number of new bytesprivate: // ethernet address EtherAddress _myea; uint8_t _myalias; SendManager *_sendmgr; AliasTable *_aliases; RecvManager *_recvmgr; // ScrambleQueue *_scrambleq;};CLICK_ENDDECLS#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -