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 *) &eth[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 *) &eth[12] = protocol;
3044
3045 /* Eth + IPh + UDPh + mpls */
3046 datalen = pkt_dev->cur_pkt_size - 14 -

--- 914 unchanged lines hidden ---