Blame view

kernel/linux-rt-4.4.41/samples/pktgen/parameters.sh 2.43 KB
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
  #
  # Common parameter parsing for pktgen scripts
  #
  
  function usage() {
      echo ""
      echo "Usage: $0 [-vx] -i ethX"
      echo "  -i : (\$DEV)       output interface/device (required)"
      echo "  -s : (\$PKT_SIZE)  packet size"
      echo "  -d : (\$DEST_IP)   destination IP"
      echo "  -m : (\$DST_MAC)   destination MAC-addr"
      echo "  -t : (\$THREADS)   threads to start"
      echo "  -c : (\$SKB_CLONE) SKB clones send before alloc new SKB"
      echo "  -b : (\$BURST)     HW level bursting of SKBs"
      echo "  -v : (\$VERBOSE)   verbose"
      echo "  -x : (\$DEBUG)     debug"
      echo ""
  }
  
  ##  --- Parse command line arguments / parameters ---
  ## echo "Commandline options:"
  while getopts "s:i:d:m:t:c:b:vxh" option; do
      case $option in
          i) # interface
            export DEV=$OPTARG
  	  info "Output device set to: DEV=$DEV"
            ;;
          s)
            export PKT_SIZE=$OPTARG
  	  info "Packet size set to: PKT_SIZE=$PKT_SIZE bytes"
            ;;
          d) # destination IP
            export DEST_IP=$OPTARG
  	  info "Destination IP set to: DEST_IP=$DEST_IP"
            ;;
          m) # MAC
            export DST_MAC=$OPTARG
  	  info "Destination MAC set to: DST_MAC=$DST_MAC"
            ;;
          t)
  	  export THREADS=$OPTARG
            export CPU_THREADS=$OPTARG
  	  let "CPU_THREADS -= 1"
  	  info "Number of threads to start: $THREADS (0 to $CPU_THREADS)"
            ;;
          c)
  	  export CLONE_SKB=$OPTARG
  	  info "CLONE_SKB=$CLONE_SKB"
            ;;
          b)
  	  export BURST=$OPTARG
  	  info "SKB bursting: BURST=$BURST"
            ;;
          v)
            export VERBOSE=yes
            info "Verbose mode: VERBOSE=$VERBOSE"
            ;;
          x)
            export DEBUG=yes
            info "Debug mode: DEBUG=$DEBUG"
            ;;
          h|?|*)
            usage;
            err 2 "[ERROR] Unknown parameters!!!"
      esac
  done
  shift $(( $OPTIND - 1 ))
  
  if [ -z "$PKT_SIZE" ]; then
      # NIC adds 4 bytes CRC
      export PKT_SIZE=60
      info "Default packet size set to: set to: $PKT_SIZE bytes"
  fi
  
  if [ -z "$THREADS" ]; then
      # Zero CPU threads means one thread, because CPU numbers are zero indexed
      export CPU_THREADS=0
      export THREADS=1
  fi
  
  if [ -z "$DEV" ]; then
      usage
      err 2 "Please specify output device"
  fi
  
  if [ -z "$DST_MAC" ]; then
      warn "Missing destination MAC address"
  fi
  
  if [ -z "$DEST_IP" ]; then
      warn "Missing destination IP address"
  fi
  
  if [ ! -d /proc/net/pktgen ]; then
      info "Loading kernel module: pktgen"
      modprobe pktgen
  fi