pktgen.c (92fd4d4d67b945c0766416284d4ab236b31542c4) | pktgen.c (9e50e3ac5a5bbb1fd2949bdd57444ad1b93e5f41) |
---|---|
1/* 2 * Authors: 3 * Copyright 2001, 2002 by Robert Olsson <robert.olsson@its.uu.se> 4 * Uppsala University and 5 * Swedish University of Agricultural Sciences 6 * 7 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> 8 * Ben Greear <greearb@candelatech.com> --- 364 unchanged lines hidden (view full) --- 373 struct flow_state *flows; 374 unsigned cflows; /* Concurrent flows (config) */ 375 unsigned lflow; /* Flow length (config) */ 376 unsigned nflows; /* accumulated flows (stats) */ 377 unsigned curfl; /* current sequenced flow (state)*/ 378 379 u16 queue_map_min; 380 u16 queue_map_max; | 1/* 2 * Authors: 3 * Copyright 2001, 2002 by Robert Olsson <robert.olsson@its.uu.se> 4 * Uppsala University and 5 * Swedish University of Agricultural Sciences 6 * 7 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> 8 * Ben Greear <greearb@candelatech.com> --- 364 unchanged lines hidden (view full) --- 373 struct flow_state *flows; 374 unsigned cflows; /* Concurrent flows (config) */ 375 unsigned lflow; /* Flow length (config) */ 376 unsigned nflows; /* accumulated flows (stats) */ 377 unsigned curfl; /* current sequenced flow (state)*/ 378 379 u16 queue_map_min; 380 u16 queue_map_max; |
381 __u32 skb_priority; /* skb priority field */ |
|
381 int node; /* Memory node */ 382 383#ifdef CONFIG_XFRM 384 __u8 ipsmode; /* IPSEC mode (config) */ 385 __u8 ipsproto; /* IPSEC type (config) */ 386#endif 387 char result[512]; 388}; --- 153 unchanged lines hidden (view full) --- 542 seq_printf(seq, " flows: %u flowlen: %u\n", pkt_dev->cflows, 543 pkt_dev->lflow); 544 545 seq_printf(seq, 546 " queue_map_min: %u queue_map_max: %u\n", 547 pkt_dev->queue_map_min, 548 pkt_dev->queue_map_max); 549 | 382 int node; /* Memory node */ 383 384#ifdef CONFIG_XFRM 385 __u8 ipsmode; /* IPSEC mode (config) */ 386 __u8 ipsproto; /* IPSEC type (config) */ 387#endif 388 char result[512]; 389}; --- 153 unchanged lines hidden (view full) --- 543 seq_printf(seq, " flows: %u flowlen: %u\n", pkt_dev->cflows, 544 pkt_dev->lflow); 545 546 seq_printf(seq, 547 " queue_map_min: %u queue_map_max: %u\n", 548 pkt_dev->queue_map_min, 549 pkt_dev->queue_map_max); 550 |
551 if (pkt_dev->skb_priority) 552 seq_printf(seq, " skb_priority: %u\n", 553 pkt_dev->skb_priority); 554 |
|
550 if (pkt_dev->flags & F_IPV6) { 551 char b1[128], b2[128], b3[128]; 552 fmt_ip6(b1, pkt_dev->in6_saddr.s6_addr); 553 fmt_ip6(b2, pkt_dev->min_in6_saddr.s6_addr); 554 fmt_ip6(b3, pkt_dev->max_in6_saddr.s6_addr); 555 seq_printf(seq, 556 " saddr: %s min_saddr: %s max_saddr: %s\n", b1, 557 b2, b3); --- 1148 unchanged lines hidden (view full) --- 1706 pkt_dev->traffic_class = tmp_value; 1707 sprintf(pg_result, "OK: traffic_class=0x%02x", pkt_dev->traffic_class); 1708 } else { 1709 sprintf(pg_result, "ERROR: traffic_class must be 00-ff"); 1710 } 1711 return count; 1712 } 1713 | 555 if (pkt_dev->flags & F_IPV6) { 556 char b1[128], b2[128], b3[128]; 557 fmt_ip6(b1, pkt_dev->in6_saddr.s6_addr); 558 fmt_ip6(b2, pkt_dev->min_in6_saddr.s6_addr); 559 fmt_ip6(b3, pkt_dev->max_in6_saddr.s6_addr); 560 seq_printf(seq, 561 " saddr: %s min_saddr: %s max_saddr: %s\n", b1, 562 b2, b3); --- 1148 unchanged lines hidden (view full) --- 1711 pkt_dev->traffic_class = tmp_value; 1712 sprintf(pg_result, "OK: traffic_class=0x%02x", pkt_dev->traffic_class); 1713 } else { 1714 sprintf(pg_result, "ERROR: traffic_class must be 00-ff"); 1715 } 1716 return count; 1717 } 1718 |
1719 if (!strcmp(name, "skb_priority")) { 1720 len = num_arg(&user_buffer[i], 9, &value); 1721 if (len < 0) 1722 return len; 1723 1724 i += len; 1725 pkt_dev->skb_priority = value; 1726 sprintf(pg_result, "OK: skb_priority=%i", 1727 pkt_dev->skb_priority); 1728 return count; 1729 } 1730 |
|
1714 sprintf(pkt_dev->result, "No such parameter \"%s\"", name); 1715 return -EINVAL; 1716} 1717 1718static int pktgen_if_open(struct inode *inode, struct file *file) 1719{ 1720 return single_open(file, pktgen_if_show, PDE(inode)->data); 1721} --- 944 unchanged lines hidden (view full) --- 2666 vlan_encapsulated_proto = (__be16 *)skb_put(skb, sizeof(__be16)); 2667 *vlan_encapsulated_proto = htons(ETH_P_IP); 2668 } 2669 2670 skb->network_header = skb->tail; 2671 skb->transport_header = skb->network_header + sizeof(struct iphdr); 2672 skb_put(skb, sizeof(struct iphdr) + sizeof(struct udphdr)); 2673 skb_set_queue_mapping(skb, queue_map); | 1731 sprintf(pkt_dev->result, "No such parameter \"%s\"", name); 1732 return -EINVAL; 1733} 1734 1735static int pktgen_if_open(struct inode *inode, struct file *file) 1736{ 1737 return single_open(file, pktgen_if_show, PDE(inode)->data); 1738} --- 944 unchanged lines hidden (view full) --- 2683 vlan_encapsulated_proto = (__be16 *)skb_put(skb, sizeof(__be16)); 2684 *vlan_encapsulated_proto = htons(ETH_P_IP); 2685 } 2686 2687 skb->network_header = skb->tail; 2688 skb->transport_header = skb->network_header + sizeof(struct iphdr); 2689 skb_put(skb, sizeof(struct iphdr) + sizeof(struct udphdr)); 2690 skb_set_queue_mapping(skb, queue_map); |
2691 skb->priority = pkt_dev->skb_priority; 2692 |
|
2674 iph = ip_hdr(skb); 2675 udph = udp_hdr(skb); 2676 2677 memcpy(eth, pkt_dev->hh, 12); 2678 *(__be16 *) & eth[12] = protocol; 2679 2680 /* Eth + IPh + UDPh + mpls */ 2681 datalen = pkt_dev->cur_pkt_size - 14 - 20 - 8 - --- 329 unchanged lines hidden (view full) --- 3011 vlan_encapsulated_proto = (__be16 *)skb_put(skb, sizeof(__be16)); 3012 *vlan_encapsulated_proto = htons(ETH_P_IPV6); 3013 } 3014 3015 skb->network_header = skb->tail; 3016 skb->transport_header = skb->network_header + sizeof(struct ipv6hdr); 3017 skb_put(skb, sizeof(struct ipv6hdr) + sizeof(struct udphdr)); 3018 skb_set_queue_mapping(skb, queue_map); | 2693 iph = ip_hdr(skb); 2694 udph = udp_hdr(skb); 2695 2696 memcpy(eth, pkt_dev->hh, 12); 2697 *(__be16 *) & eth[12] = protocol; 2698 2699 /* Eth + IPh + UDPh + mpls */ 2700 datalen = pkt_dev->cur_pkt_size - 14 - 20 - 8 - --- 329 unchanged lines hidden (view full) --- 3030 vlan_encapsulated_proto = (__be16 *)skb_put(skb, sizeof(__be16)); 3031 *vlan_encapsulated_proto = htons(ETH_P_IPV6); 3032 } 3033 3034 skb->network_header = skb->tail; 3035 skb->transport_header = skb->network_header + sizeof(struct ipv6hdr); 3036 skb_put(skb, sizeof(struct ipv6hdr) + sizeof(struct udphdr)); 3037 skb_set_queue_mapping(skb, queue_map); |
3038 skb->priority = pkt_dev->skb_priority; |
|
3019 iph = ipv6_hdr(skb); 3020 udph = udp_hdr(skb); 3021 3022 memcpy(eth, pkt_dev->hh, 12); 3023 *(__be16 *) ð[12] = protocol; 3024 3025 /* Eth + IPh + UDPh + mpls */ 3026 datalen = pkt_dev->cur_pkt_size - 14 - --- 914 unchanged lines hidden --- | 3039 iph = ipv6_hdr(skb); 3040 udph = udp_hdr(skb); 3041 3042 memcpy(eth, pkt_dev->hh, 12); 3043 *(__be16 *) ð[12] = protocol; 3044 3045 /* Eth + IPh + UDPh + mpls */ 3046 datalen = pkt_dev->cur_pkt_size - 14 - --- 914 unchanged lines hidden --- |