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

Reply via email to