.. | .. |
---|
20 | 20 | [ -z "$CLONE_SKB" ] && CLONE_SKB="0" |
---|
21 | 21 | |
---|
22 | 22 | # Flow variation random source port between min and max |
---|
23 | | -UDP_MIN=9 |
---|
24 | | -UDP_MAX=109 |
---|
| 23 | +UDP_SRC_MIN=9 |
---|
| 24 | +UDP_SRC_MAX=109 |
---|
25 | 25 | |
---|
26 | 26 | node=`get_iface_node $DEV` |
---|
27 | 27 | irq_array=(`get_iface_irqs $DEV`) |
---|
.. | .. |
---|
35 | 35 | [ -z "$IP6" ] && DEST_IP="198.18.0.42" || DEST_IP="FD00::1" |
---|
36 | 36 | fi |
---|
37 | 37 | [ -z "$DST_MAC" ] && DST_MAC="90:e2:ba:ff:ff:ff" |
---|
| 38 | +if [ -n "$DEST_IP" ]; then |
---|
| 39 | + validate_addr${IP6} $DEST_IP |
---|
| 40 | + read -r DST_MIN DST_MAX <<< $(parse_addr${IP6} $DEST_IP) |
---|
| 41 | +fi |
---|
| 42 | +if [ -n "$DST_PORT" ]; then |
---|
| 43 | + read -r UDP_DST_MIN UDP_DST_MAX <<< $(parse_ports $DST_PORT) |
---|
| 44 | + validate_ports $UDP_DST_MIN $UDP_DST_MAX |
---|
| 45 | +fi |
---|
38 | 46 | |
---|
39 | 47 | # General cleanup everything since last run |
---|
40 | 48 | pg_ctrl "reset" |
---|
.. | .. |
---|
75 | 83 | |
---|
76 | 84 | # Destination |
---|
77 | 85 | pg_set $dev "dst_mac $DST_MAC" |
---|
78 | | - pg_set $dev "dst$IP6 $DEST_IP" |
---|
| 86 | + pg_set $dev "dst${IP6}_min $DST_MIN" |
---|
| 87 | + pg_set $dev "dst${IP6}_max $DST_MAX" |
---|
| 88 | + |
---|
| 89 | + if [ -n "$DST_PORT" ]; then |
---|
| 90 | + # Single destination port or random port range |
---|
| 91 | + pg_set $dev "flag UDPDST_RND" |
---|
| 92 | + pg_set $dev "udp_dst_min $UDP_DST_MIN" |
---|
| 93 | + pg_set $dev "udp_dst_max $UDP_DST_MAX" |
---|
| 94 | + fi |
---|
79 | 95 | |
---|
80 | 96 | # Setup random UDP port src range |
---|
81 | 97 | pg_set $dev "flag UDPSRC_RND" |
---|
82 | | - pg_set $dev "udp_src_min $UDP_MIN" |
---|
83 | | - pg_set $dev "udp_src_max $UDP_MAX" |
---|
| 98 | + pg_set $dev "udp_src_min $UDP_SRC_MIN" |
---|
| 99 | + pg_set $dev "udp_src_max $UDP_SRC_MAX" |
---|
84 | 100 | done |
---|
85 | 101 | |
---|
86 | 102 | # start_run |
---|