[Click] ToDevice(ath0) send: Massage too long

Beyers Cronje bcronje at gmail.com
Fri Dec 10 04:13:42 EST 2010


Don worry about it, that's how one learns :)

On Thu, Dec 9, 2010 at 10:23 PM, Alexandre Becholey <
alexandre.becholey at epfl.ch> wrote:

> Hi,
>
> Everybody says that first impressions hard really hard to change. I
> think I ruined mine on that mailing-list... Sorry to have bother you.
> Well the problem is fixed, after pushing the packet on output(0), I
> killed it (p->kill()). Therefore ToDevice received a packet with data()
> pointing to NULL and some random (read bufferoverflow here) length.
>
> Best regards,
>
> Alexandre
>
> On Thu, 2010-12-09 at 13:32 +0000, Becholey Alexandre wrote:
>
> > Hi,
> >
> > I'm trying to create a click element that add a custom header between the
> mac header and the ip header. My element has 1 input (ethernet frames) and 1
> output (frames with the custom header).
> > Here is the script:
> > RatedSource
> >     -> UDPIPEncap(my_ip, 254, dst_ip, 254)
> >     -> EtherEncap(...) // I do this just to create some random ethernet
> frames
> >     -> Print(1)
> >     -> MyElement
> >     -> Print(2)
> >     -> EtherEncap(0x0800, my_mac, dst_mac)
> >     -> Print(3)
> >     -> Queue(2000)
> >     -> ToDevice(ath0)
> >
> > Here is what my element does in his push function:
> > struct my_custom_header my_header;
> > my_header.n = 1; //an unsigned int
> > my_header.addr = some_addr; //a struct in_addr
> > WriteablePacket * encaped_pkt = p->uniqueify();
> > encaped_pkt->pull(sizeof(click_ether));
> > encaped_pkt = encaped_pkt->push(sizeof(my_custom_header_t));
> > memcpy(p->data(), &my_header, sizeof(my_custom_header_t));
> > output(0).push(p);
> >
> > With the Prints I can see that my header is correctly written in the
> packet:
> > 1:    106 | ffffffff ffff0002 6fffff04 08004500 005c0113 0000fa11
> > 2:    100 | 01000000 0a0a0a07 4500005c 01130000 fa11985b 0a0a0a04
> > 3:    114 | ffffffff ffff0002 6fffff04 08000100 00000a0a 0a074500
> > But then I get the "ToDevice(ath0) send: Message too long"
> >
> > I'm using click (userlevel) on an assus router running OpenWRT (8.09)
> with an atheros wifi card (madwifi driver).
> > When I remove MyElement and the Following EtherEncap in the script, there
> is no problem (I can sniff the sent frames from another router with tcpdump
> for example).
> >
> > Any idee why? It's the first time I encounter this problem. I can without
> any problem create some packets (Packet::make(...)) and send them.
> >
> > Alexandre Becholey
> > _______________________________________________
> > click mailing list
> > click at amsterdam.lcs.mit.edu
> > https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>
>
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>


More information about the click mailing list