cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

README.rst (2663B)


      1Sample and benchmark scripts for pktgen (packet generator)
      2==========================================================
      3This directory contains some pktgen sample and benchmark scripts, that
      4can easily be copied and adjusted for your own use-case.
      5
      6General doc is located in kernel: Documentation/networking/pktgen.rst
      7
      8Helper include files
      9====================
     10This directory contains two helper shell files, that can be "included"
     11by shell source'ing.  Namely "functions.sh" and "parameters.sh".
     12
     13Common parameters
     14-----------------
     15The parameters.sh file support easy and consistant parameter parsing
     16across the sample scripts.  Usage example is printed on errors::
     17
     18 Usage: ./pktgen_sample01_simple.sh [-vx] -i ethX
     19  -i : ($DEV)       output interface/device (required)
     20  -s : ($PKT_SIZE)  packet size
     21  -d : ($DEST_IP)   destination IP. CIDR (e.g. 198.18.0.0/15) is also allowed
     22  -m : ($DST_MAC)   destination MAC-addr
     23  -p : ($DST_PORT)  destination PORT range (e.g. 433-444) is also allowed
     24  -t : ($THREADS)   threads to start
     25  -f : ($F_THREAD)  index of first thread (zero indexed CPU number)
     26  -c : ($SKB_CLONE) SKB clones send before alloc new SKB
     27  -n : ($COUNT)     num messages to send per thread, 0 means indefinitely
     28  -b : ($BURST)     HW level bursting of SKBs
     29  -v : ($VERBOSE)   verbose
     30  -x : ($DEBUG)     debug
     31  -6 : ($IP6)       IPv6
     32  -w : ($DELAY)     Tx Delay value (ns)
     33  -a : ($APPEND)    Script will not reset generator's state, but will append its config
     34
     35The global variable being set is also listed.  E.g. the required
     36interface/device parameter "-i" sets variable $DEV.
     37
     38"-a" parameter may be used to create different flows simultaneously.
     39In this mode script will keep the existing config, will append its settings.
     40In this mode you'll have to manually run traffic with "pg_ctrl start".
     41
     42For example you may use:
     43
     44    source ./samples/pktgen/functions.sh
     45    pg_ctrl reset
     46    # add first device
     47    ./pktgen_sample06_numa_awared_queue_irq_affinity.sh -a -i ens1f0 -m 34:80:0d:a3:fc:c9 -t 8
     48    # add second device
     49    ./pktgen_sample06_numa_awared_queue_irq_affinity.sh -a -i ens1f1 -m 34:80:0d:a3:fc:c9 -t 8
     50    # run joint traffic on two devs
     51    pg_ctrl start
     52
     53Common functions
     54----------------
     55The functions.sh file provides; Three different shell functions for
     56configuring the different components of pktgen: pg_ctrl(), pg_thread()
     57and pg_set().
     58
     59These functions correspond to pktgens different components.
     60 * pg_ctrl()   control "pgctrl" (/proc/net/pktgen/pgctrl)
     61 * pg_thread() control the kernel threads and binding to devices
     62 * pg_set()    control setup of individual devices
     63
     64See sample scripts for usage examples.