cc: Re: skb configured but can't get data allocated
From: DHAJOGLO <hidden>
Date: 2007-09-12 23:41:42
To All, Thanks for the help. I ended up adding my data packet after the ip headers and then updated the IP length:
/* Allocate space for our exp_packet data payload and set the data */
d_out = (struct exp_packet *)skb_put(skb,sizeof(struct exp_packet));
d_out->headbits = (reply<<4) & 0xF0;
d_out->sequence = pkthr.m_seq;
d_out->payload = htons(pkthr.p_hash);
/* adjust the total length of this IP packet */
iplen = skb->tail - (unsigned char *)skb->nh.iph;
iph->tot_len = htons(iplen);
ip_send_check(iph);
This is my first venture into the kernel!
On Wednesday, September 12, 2007 3:12 PM, Vlad Yasevich wrote:Date: Wed, 12 Sep 2007 16:12:37 -0400 From: Vlad Yasevich To: DHAJOGLO <redacted> Subject: Re: skb configured but can't get data allocated You may want to read this page: http://vger.kernel.org/~davem/skb.html You will then see you problem. Essentially, you are writing your data into an area that is never sent. What you are end up is this: --------------------------------------------- | your data| space | ll-header | IPv4 header| --------------------------------------------- -vlad