📄 common.hh
字号:
#ifndef COMMON_HH#define COMMON_HHCLICK_DECLS#include <elements/wifi/sr/srpacket.hh>#include <elements/wifi/sr/path.hh>#include <clicknet/ether.h>#include <click/etheraddress.hh>#include <click/packet.hh>#include <click/ipaddress.hh>class PacketState{ public: EtherAddress _nbr; IPAddress _src; uint16_t _ipid; uint16_t _idx; bool _data; double _dec_prob; PacketState(EtherAddress nbr, uint32_t src, uint16_t ipid): _ipid(ipid), _idx(0), _data(true) { _nbr = EtherAddress(nbr.data()); _src = IPAddress(src); _dec_prob = 1.0; } PacketState(EtherAddress nbr, IPAddress src, uint16_t ipid): _ipid(ipid), _idx(0), _data(true) { _nbr = EtherAddress(nbr.data()); _src = src; _dec_prob = 1.0; } inline bool operator==(const PacketState &b) { return ((_src == b._src) && (_ipid == b._ipid)); } inline bool operator!=(const PacketState &b) { return !((*this) == b); }};class PacketRID {public: IPAddress _src; uint16_t _id; PacketRID(IPAddress src, uint16_t id) : _id(id) { _src = IPAddress(src.addr()); } PacketRID(Packet *p) { const click_ip *iph = p->ip_header(); _src = IPAddress(iph->ip_src); _id = ntohs(iph->ip_id); } PacketRID() : _id(0) {} PacketRID(const PacketRID &b) { _src = b._src; _id = b._id; }};inline int hashcode(const PacketRID &pid){ StringAccum sa; sa << pid._src << pid._id; return hashcode(sa.take_string());}inline booloperator==(const PacketRID &a, const PacketRID &b){ return ((a._src == b._src) && (a._id == b._id));}inline booloperator!=(const PacketRID &a, const PacketRID &b){ return !(a == b);}CLICK_ENDDECLS#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -