diff options
| -rw-r--r-- | net/core/pktgen.c | 29 | 
1 files changed, 13 insertions, 16 deletions
diff --git a/net/core/pktgen.c b/net/core/pktgen.c index c57b06bc79f3..975d651312dc 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c  | |||
| @@ -151,7 +151,7 @@ | |||
| 151 | #include <asm/timex.h> | 151 | #include <asm/timex.h> | 
| 152 | 152 | ||
| 153 | 153 | ||
| 154 | #define VERSION "pktgen v2.61: Packet Generator for packet performance testing.\n" | 154 | #define VERSION "pktgen v2.62: Packet Generator for packet performance testing.\n" | 
| 155 | 155 | ||
| 156 | /* #define PG_DEBUG(a) a */ | 156 | /* #define PG_DEBUG(a) a */ | 
| 157 | #define PG_DEBUG(a) | 157 | #define PG_DEBUG(a) | 
| @@ -1921,6 +1921,11 @@ static struct sk_buff *fill_packet_ipv4(struct net_device *odev, | |||
| 1921 | struct iphdr *iph; | 1921 | struct iphdr *iph; | 
| 1922 | struct pktgen_hdr *pgh = NULL; | 1922 | struct pktgen_hdr *pgh = NULL; | 
| 1923 | 1923 | ||
| 1924 | /* Update any of the values, used when we're incrementing various | ||
| 1925 | * fields. | ||
| 1926 | */ | ||
| 1927 | mod_cur_headers(pkt_dev); | ||
| 1928 | |||
| 1924 | skb = alloc_skb(pkt_dev->cur_pkt_size + 64 + 16, GFP_ATOMIC); | 1929 | skb = alloc_skb(pkt_dev->cur_pkt_size + 64 + 16, GFP_ATOMIC); | 
| 1925 | if (!skb) { | 1930 | if (!skb) { | 
| 1926 | sprintf(pkt_dev->result, "No memory"); | 1931 | sprintf(pkt_dev->result, "No memory"); | 
| @@ -1934,11 +1939,6 @@ static struct sk_buff *fill_packet_ipv4(struct net_device *odev, | |||
| 1934 | iph = (struct iphdr *)skb_put(skb, sizeof(struct iphdr)); | 1939 | iph = (struct iphdr *)skb_put(skb, sizeof(struct iphdr)); | 
| 1935 | udph = (struct udphdr *)skb_put(skb, sizeof(struct udphdr)); | 1940 | udph = (struct udphdr *)skb_put(skb, sizeof(struct udphdr)); | 
| 1936 | 1941 | ||
| 1937 | /* Update any of the values, used when we're incrementing various | ||
| 1938 | * fields. | ||
| 1939 | */ | ||
| 1940 | mod_cur_headers(pkt_dev); | ||
| 1941 | |||
| 1942 | memcpy(eth, pkt_dev->hh, 12); | 1942 | memcpy(eth, pkt_dev->hh, 12); | 
| 1943 | *(u16*)ð[12] = __constant_htons(ETH_P_IP); | 1943 | *(u16*)ð[12] = __constant_htons(ETH_P_IP); | 
| 1944 | 1944 | ||
| @@ -2192,7 +2192,12 @@ static struct sk_buff *fill_packet_ipv6(struct net_device *odev, | |||
| 2192 | int datalen; | 2192 | int datalen; | 
| 2193 | struct ipv6hdr *iph; | 2193 | struct ipv6hdr *iph; | 
| 2194 | struct pktgen_hdr *pgh = NULL; | 2194 | struct pktgen_hdr *pgh = NULL; | 
| 2195 | 2195 | ||
| 2196 | /* Update any of the values, used when we're incrementing various | ||
| 2197 | * fields. | ||
| 2198 | */ | ||
| 2199 | mod_cur_headers(pkt_dev); | ||
| 2200 | |||
| 2196 | skb = alloc_skb(pkt_dev->cur_pkt_size + 64 + 16, GFP_ATOMIC); | 2201 | skb = alloc_skb(pkt_dev->cur_pkt_size + 64 + 16, GFP_ATOMIC); | 
| 2197 | if (!skb) { | 2202 | if (!skb) { | 
| 2198 | sprintf(pkt_dev->result, "No memory"); | 2203 | sprintf(pkt_dev->result, "No memory"); | 
| @@ -2206,17 +2211,9 @@ static struct sk_buff *fill_packet_ipv6(struct net_device *odev, | |||
| 2206 | iph = (struct ipv6hdr *)skb_put(skb, sizeof(struct ipv6hdr)); | 2211 | iph = (struct ipv6hdr *)skb_put(skb, sizeof(struct ipv6hdr)); | 
| 2207 | udph = (struct udphdr *)skb_put(skb, sizeof(struct udphdr)); | 2212 | udph = (struct udphdr *)skb_put(skb, sizeof(struct udphdr)); | 
| 2208 | 2213 | ||
| 2209 | |||
| 2210 | /* Update any of the values, used when we're incrementing various | ||
| 2211 | * fields. | ||
| 2212 | */ | ||
| 2213 | mod_cur_headers(pkt_dev); | ||
| 2214 | |||
| 2215 | |||
| 2216 | memcpy(eth, pkt_dev->hh, 12); | 2214 | memcpy(eth, pkt_dev->hh, 12); | 
| 2217 | *(u16*)ð[12] = __constant_htons(ETH_P_IPV6); | 2215 | *(u16*)ð[12] = __constant_htons(ETH_P_IPV6); | 
| 2218 | 2216 | ||
| 2219 | |||
| 2220 | datalen = pkt_dev->cur_pkt_size-14- | 2217 | datalen = pkt_dev->cur_pkt_size-14- | 
| 2221 | sizeof(struct ipv6hdr)-sizeof(struct udphdr); /* Eth + IPh + UDPh */ | 2218 | sizeof(struct ipv6hdr)-sizeof(struct udphdr); /* Eth + IPh + UDPh */ | 
| 2222 | 2219 | ||
