⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aggregatelen.cc

📁 COPE the first practical network coding scheme which is developped on click
💻 CC
字号:
// -*- mode: c++; c-basic-offset: 4 -*-#include <click/config.h>#include "aggregatelen.hh"#include <click/error.hh>#include <click/confparse.hh>#include <clicknet/ip.h>#include <click/packet_anno.hh>AggregateLength::AggregateLength()    : Element(1, 1){}AggregateLength::~AggregateLength(){}intAggregateLength::configure(Vector<String> &conf, ErrorHandler *errh){    _ip = false;    if (cp_va_parse(conf, this, errh,		    cpKeywords,		    "IP", cpBool, "IP length?", &_ip,		    cpEnd) < 0)	return -1;    return 0;}Packet *AggregateLength::bad_packet(Packet *p){    if (noutputs() == 2)	output(1).push(p);    else	p->kill();    return 0;}Packet *AggregateLength::handle_packet(Packet *p){    int offset;    if (_ip && !p->ip_header())	return bad_packet(p);    else if (_ip)	offset = p->network_header_offset();    else	offset = 0;    uint32_t len = p->length() - offset + EXTRA_LENGTH_ANNO(p);    SET_AGGREGATE_ANNO(p, len);    return p;}voidAggregateLength::push(int, Packet *p){    if (Packet *q = handle_packet(p))	output(0).push(q);}Packet *AggregateLength::pull(int){    Packet *p = input(0).pull();    if (p)	p = handle_packet(p);    return p;}ELEMENT_REQUIRES(userlevel)EXPORT_ELEMENT(AggregateLength)#include <click/vector.cc>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -