#!/bin/sh set -e set -x echo "First source all variables and THEN run this script" read something SUFFIX="" if [ $# -ge 1 ]; then SUFFIX="-$1" fi LOG=~/master-thesis/netpfga/log/compile-$(date +%F-%H%M%S)$SUFFIX ( # Step 1..3: create code # Step 4: date cd $P4_PROJECT_DIR && make # Step 5: sdnet simulation date cd $P4_PROJECT_DIR/nf_sume_sdnet_ip/SimpleSumeSwitch && ./vivado_sim.bash expected_line=$(grep ^expected "$LOG" | sed -e 's/.*= <//' -e 's/.*= (//') actual_line=$(grep ^actual "$LOG" | sed -e 's/.*= <//' -e 's/.*= (//') # if [ -z "$expected_line" ]; then # echo "Empty packet grep -- probably broken - aborting" # exit 1 # fi if [ "$expected_line" != "$actual_line" ]; then echo packet mismatch exit 1 fi # Step 6: calls ${SUME_SDNET}/bin/gen_config_writes.py and generates SOMETHING date cd $P4_PROJECT_DIR && make config_writes # Step 7: copies directory SDNET_OUT_DIR to TARGET and copies other dirs date cd $P4_PROJECT_DIR && make uninstall_sdnet && make install_sdnet # Step 8: copies "config_writes.py" to the current dir - related to step 6 date cd $NF_DESIGN_DIR/test/sim_switch_default && make # -------- FIX config_writes.py here: add " pass" or overwrite whole script # Step 9: Run the SUME simulation date cd $SUME_FOLDER && ./tools/scripts/nf_test.py sim --major switch --minor default # Step 10: long compile step date if [ "$something" = no ]; then : else cd $NF_DESIGN_DIR && make fi # Step 11: (nothing to be done) # Step 12: date cd $NF_DESIGN_DIR/bitfiles mv simple_sume_switch.bit ${P4_PROJECT_NAME}.bit cp $P4_PROJECT_DIR/testdata/config_writes.sh ./ # Step 13: date cd $NF_DESIGN_DIR/bitfiles/ # some scripts are, some scripts aren't executable... chmod u+x $(pwd -P)/program_switch.sh sudo bash -c ". $HOME/master-thesis/netpfga/bashinit && $(pwd -P)/program_switch.sh" ) 2>&1 | tee "$LOG"