#!/bin/bash -xe SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) # Interface towards UPF: case $(hostname) in gtplab1) IFACE_RAN="enp2s0f1np1" IFACE_CN="enp2s0f0np0" MAC_CN_PEER="ec:0d:9a:8a:27:53" ;; c240-2) IFACE_RAN="ens2f0np0" IFACE_CN="ens2f1np1" # TRex peer is epyc1's Mellanox NIC: MAC_CN_PEER="b8:ce:f6:fe:62:e1" # Adapt Rx/Tx Queues and IRQs to Numa Node of device: # cat /sys/class/net/$IFACE_RAN/device/numa_node # 0 # cat /sys/class/net/$IFACE_RAN/device/local_cpulist # 0-19 sudo ethtool -L $IFACE_RAN combined 20 sudo ethtool -L $IFACE_CN combined 20 sudo "$SCRIPT_DIR/../../../../../scripts/set_irq_affinity_cpulist.sh" 0-19 $IFACE_RAN sudo "$SCRIPT_DIR/../../../../../scripts/set_irq_affinity_cpulist.sh" 0-19 $IFACE_CN ;; *) echo "UNEXPECTED HOSTNAME: $(hostname)" exit 1 ;; esac # Disable ethernet flow control: sudo ethtool -A $IFACE_RAN autoneg off rx off tx off sudo ethtool -A $IFACE_CN autoneg off rx off tx off # Increase NIC buffers: sudo ethtool -G $IFACE_RAN rx 8192 tx 8192 sudo ethtool -G $IFACE_CN rx 8192 tx 8192 # Enable IP forwarding: sudo sysctl -w net.ipv4.ip_forward=1 # Increase UDP buffer memory: sudo sysctl -w net.ipv4.udp_mem="763563 900000000 1000000000" sudo sysctl -w net.core.optmem_max=16000000 sudo sysctl -w net.core.rmem_max=2000000000 sudo sysctl -w net.core.rmem_default=2000000000 sudo sysctl -w net.core.wmem_max=2000000000 sudo sysctl -w net.core.wmem_default=2000000000 sudo sysctl -w net.core.netdev_max_backlog=2000 sudo sysctl -w net.core.netdev_budget=600 # Set up UPF address: sudo ip addr add 172.16.32.1/24 dev $IFACE_RAN || true; sudo ip link set up dev $IFACE_RAN || true; sudo ip addr add 172.16.31.2/24 dev $IFACE_CN || true; sudo ip link set up dev $IFACE_CN || true; # TRex doesn't answer ARPs, so we need to set up the CN-side peer: sudo ip neigh add 172.16.31.200 lladdr "$MAC_CN_PEER" nud permanent dev $IFACE_CN || true;