Hi,
I have implemented the code and it works, but the problem is when i try to
realize a real broadcast, I got an error
* check_pktCTRL:Invalid MAC Control subtype*
I simply add the code to rebroadcast the packet. I modified only one
function.
void
Protoname::recv_protoname_pkt(Packet* p) {
// processing of protoname packet
struct hdr_cmn* ch = HDR_CMN(p);
struct hdr_ip* ih = HDR_IP(p);
struct hdr_protoname_pkt* ph = HDR_PROTONAME_PKT(p);
// All routing messages are sent from and to port RT_PORT, so we check
it
assert(ih->sport() == RT_PORT);
assert(ih->dport() == RT_PORT);
//ph->pkt_src() = ra_addr();
//ph->pkt_len() = 7;
//ph->pkt_seq_num() = seq_num_++;
//ch->ptype() = PT_PROTONAME;
ch->direction() = hdr_cmn::DOWN;
//ch->size() = IP_HDR_LEN + ph->pkt_len();
//ch->error() = 0;
//ch->next_hop() = IP_BROADCAST;
//ch->addr_type() = NS_AF_INET;
ih->saddr() = ra_addr();
ih->daddr() = IP_BROADCAST;
ih->sport() = RT_PORT;
ih->dport() = RT_PORT;
ih->ttl() = ih->ttl()-1;
// Pay attention to TTL
Scheduler::instance().schedule(target_, p, JITTER);
// Release resources
Packet::free(p);
}
Probably the problem is that target_ is null, but i don't know.
Plz help me
Thanks
Maurizio