原文地址: http://wowseason.spaces.live.com/blog/cns!8A62350BF8613BBF!124.entry
参见aodv.cc
1.在aodv.h中声明
PortClassifier *dmux_;
2.if (ch->ptype() != PT_AODV && ch->direction() == hdr_cmn::UP &&
((u_int32_t)ih->daddr() == IP_BROADCAST)
|| ((u_int32_t)ih->daddr() == here_.addr_)) {
dmux_->recv(p,0); //传递给分类器
return;
3. 分类器处理数据包
void Classifier::recv(Packet* p, Handler*h)
{
NsObject* node = find(p);//查找节点的是否存在
if (node == NULL) {
/*
* XXX this should be "dropped" somehow. Right now,
* these events aren't traced.
*/
Packet::free(p);
return;
}
node->recv(p,h);//让节点接受
4.节点接受后
. void NsObject::recv(Packet *p, const char*)
{
Packet::free(p);
}
浙公网安备 33010602011771号