提交 206daaf7 编写于 作者: S Stephen Hemminger 提交者: David S. Miller

[NETPOLL]: initialize skb for UDP

Need to fully initialize skb to keep lower layers and queueing happy.
Signed-off-by: NStephen Hemminger <shemminger@osdl.org>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 6723ab54
...@@ -335,13 +335,13 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len) ...@@ -335,13 +335,13 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
memcpy(skb->data, msg, len); memcpy(skb->data, msg, len);
skb->len += len; skb->len += len;
udph = (struct udphdr *) skb_push(skb, sizeof(*udph)); skb->h.uh = udph = (struct udphdr *) skb_push(skb, sizeof(*udph));
udph->source = htons(np->local_port); udph->source = htons(np->local_port);
udph->dest = htons(np->remote_port); udph->dest = htons(np->remote_port);
udph->len = htons(udp_len); udph->len = htons(udp_len);
udph->check = 0; udph->check = 0;
iph = (struct iphdr *)skb_push(skb, sizeof(*iph)); skb->nh.iph = iph = (struct iphdr *)skb_push(skb, sizeof(*iph));
/* iph->version = 4; iph->ihl = 5; */ /* iph->version = 4; iph->ihl = 5; */
put_unaligned(0x45, (unsigned char *)iph); put_unaligned(0x45, (unsigned char *)iph);
...@@ -357,8 +357,8 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len) ...@@ -357,8 +357,8 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl);
eth = (struct ethhdr *) skb_push(skb, ETH_HLEN); eth = (struct ethhdr *) skb_push(skb, ETH_HLEN);
skb->mac.raw = skb->data;
eth->h_proto = htons(ETH_P_IP); skb->protocol = eth->h_proto = htons(ETH_P_IP);
memcpy(eth->h_source, np->local_mac, 6); memcpy(eth->h_source, np->local_mac, 6);
memcpy(eth->h_dest, np->remote_mac, 6); memcpy(eth->h_dest, np->remote_mac, 6);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册