Hristo,
Essentially, a new packet has to be allocated with a larger headroom to
accommodate extra headers. Hence, there is a warning message regarding
an expensive push.
You need to use the HEADROOM parameter in the Socket element to increase
the headroom. The default is 28 bytes. Since you are 6 bytes short
"have 8 wanted 14", you need to set the HEADROOM to 34 bytes.
Roman
Hristo Asenov wrote:
> Hello,
>
> We are currently using CLICK to form our own packets, with the DATA field of
> IP packet set to our own value, which we get from an arbitrary socket. We are
> using IPEncap to encapsulate our data in a valid IP packet, then using
> EtherEncap to encapsulate it into an ethernet frame. Our script looks like:
>
> Socket(TCP, 0.0.0.0, 7777)
> -> Print("From Socket: ")
> -> IPEncap(0, 192.168.0.2, 192.168.0.3)
> -> Print("From IP: ")
> -> IPPrint("From IP: ")
> -> EtherEncap(0x0800, 0:0:0:0:0:0, 1:1:1:1:1:1)
> -> Print("From Ethernet: ")
> -> Queue
> -> ToDevice(eth0);
>
> Going from IPEncap to EtherEncap, we are getting the exception "expensive
> Packet::push; have 8 wanted 14". I have a feeling that the exception is
> inside IPEncap. The packet is still transmitted over the network, however we
> have no idea why that exception is being generated. If anyone can help us
> out, it would be appreciated.
>
> Hristo
>
>
>
>
>
> _______________________________________________
> click mailing list
> [email protected]
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>
_______________________________________________
click mailing list
[email protected]
https://amsterdam.lcs.mit.edu/mailman/listinfo/click