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

Reply via email to