Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) # Common parameter parsing for pktgen scripts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) function usage() {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7)     echo ""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)     echo "Usage: $0 [-vx] -i ethX"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9)     echo "  -i : (\$DEV)       output interface/device (required)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10)     echo "  -s : (\$PKT_SIZE)  packet size"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11)     echo "  -d : (\$DEST_IP)   destination IP. CIDR (e.g. 198.18.0.0/15) is also allowed"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12)     echo "  -m : (\$DST_MAC)   destination MAC-addr"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13)     echo "  -p : (\$DST_PORT)  destination PORT range (e.g. 433-444) is also allowed"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14)     echo "  -t : (\$THREADS)   threads to start"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15)     echo "  -f : (\$F_THREAD)  index of first thread (zero indexed CPU number)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)     echo "  -c : (\$SKB_CLONE) SKB clones send before alloc new SKB"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)     echo "  -n : (\$COUNT)     num messages to send per thread, 0 means indefinitely"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)     echo "  -b : (\$BURST)     HW level bursting of SKBs"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19)     echo "  -v : (\$VERBOSE)   verbose"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20)     echo "  -x : (\$DEBUG)     debug"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21)     echo "  -6 : (\$IP6)       IPv6"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22)     echo ""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) ##  --- Parse command line arguments / parameters ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) ## echo "Commandline options:"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) while getopts "s:i:d:m:p:f:t:c:n:b:vxh6" option; do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28)     case $option in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29)         i) # interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)           export DEV=$OPTARG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 	  info "Output device set to: DEV=$DEV"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)           ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33)         s)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34)           export PKT_SIZE=$OPTARG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 	  info "Packet size set to: PKT_SIZE=$PKT_SIZE bytes"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36)           ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37)         d) # destination IP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38)           export DEST_IP=$OPTARG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 	  info "Destination IP set to: DEST_IP=$DEST_IP"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)           ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41)         m) # MAC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)           export DST_MAC=$OPTARG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 	  info "Destination MAC set to: DST_MAC=$DST_MAC"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44)           ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45)         p) # PORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46)           export DST_PORT=$OPTARG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	  info "Destination PORT set to: DST_PORT=$DST_PORT"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48)           ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49)         f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 	  export F_THREAD=$OPTARG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 	  info "Index of first thread (zero indexed CPU number): $F_THREAD"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52)           ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53)         t)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 	  export THREADS=$OPTARG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	  info "Number of threads to start: $THREADS"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56)           ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57)         c)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 	  export CLONE_SKB=$OPTARG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 	  info "CLONE_SKB=$CLONE_SKB"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)           ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61)         n)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	  export COUNT=$OPTARG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	  info "COUNT=$COUNT"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64)           ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65)         b)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	  export BURST=$OPTARG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	  info "SKB bursting: BURST=$BURST"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68)           ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69)         v)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)           export VERBOSE=yes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71)           info "Verbose mode: VERBOSE=$VERBOSE"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72)           ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73)         x)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74)           export DEBUG=yes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75)           info "Debug mode: DEBUG=$DEBUG"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76)           ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	  export IP6=6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	  info "IP6: IP6=$IP6"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 	  ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81)         h|?|*)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)           usage;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)           err 2 "[ERROR] Unknown parameters!!!"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)     esac
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) done
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) shift $(( $OPTIND - 1 ))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) if [ -z "$PKT_SIZE" ]; then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89)     # NIC adds 4 bytes CRC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90)     export PKT_SIZE=60
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91)     info "Default packet size set to: set to: $PKT_SIZE bytes"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) if [ -z "$F_THREAD" ]; then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95)     # First thread (F_THREAD) reference the zero indexed CPU number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96)     export F_THREAD=0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) if [ -z "$THREADS" ]; then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)     export THREADS=1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) export L_THREAD=$(( THREADS + F_THREAD - 1 ))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) if [ -z "$DEV" ]; then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)     usage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)     err 2 "Please specify output device"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) if [ -z "$DST_MAC" ]; then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)     warn "Missing destination MAC address"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) if [ -z "$DEST_IP" ]; then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)     warn "Missing destination IP address"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) if [ ! -d /proc/net/pktgen ]; then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)     info "Loading kernel module: pktgen"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)     modprobe pktgen
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) fi