diff --git a/scripts/99-deployment.sh b/scripts/99-deployment.sh index 3c5a815..30c9e19 100755 --- a/scripts/99-deployment.sh +++ b/scripts/99-deployment.sh @@ -4,32 +4,36 @@ WEDGE_PASS="Jony154977" USER_PASS="asdf1234" run_script_via_ssh() { - local script_path="$1" # Path to the script to be copied - local ssh_host="$2" # SSH host - local pass=$3 - local remote_path="/tmp/$(basename "$script_path")" # Destination path on the remote machine + local script_path + local ssh_host + local pass + local remote_path + + script_path="$1" + ssh_host="$2" + pass=$3 + remote_path="/tmp/$(basename "$script_path")" # Copy the script to the remote host - scp "$script_path" "$ssh_host:$remote_path" - if [[ $? -ne 0 ]]; then + if ! scp "$script_path" "$ssh_host:$remote_path"; then echo "Error: Failed to copy the script to the remote host." return 1 fi # Execute the script on the remote host with sudo - ssh "$ssh_host" "echo $pass | sudo -S $remote_path" - if [[ $? -ne 0 ]]; then + if ! ssh "$ssh_host" "echo $pass | sudo -S $remote_path"; then echo "Error: Failed to execute the script on the remote host." return 1 fi - - echo "Script executed successfully on $ssh_host." } wedge_setup() { + # Deploy switch program scp -r ../l1switch/ ncs-wedge:/tmp/ run_script_via_ssh ./00-wedge_on_reboot.sh ncs-wedge $WEDGE_PASS run_script_via_ssh ./01-wedge_compile_code.sh ncs-wedge $WEDGE_PASS + + # Deploy service for switch program scp ./l1switch.service ncs-wedge:/tmp/l1switch.service scp ./02-run_switch_program.sh ncs-wedge:/home/user/bf-sde-9.7.0/l1switch.sh ssh ncs-wedge "echo $WEDGE_PASS | sudo -S mv /tmp/l1switch.service /etc/systemd/system/l1switch.service" @@ -49,23 +53,24 @@ wedge_setup() { setup_node() { local nodeid="$1" local node="ncs-node$nodeid" - local node_script="./10-host_setup_node$nodeid.sh" + local node_setup_script="./10-host_setup_node$nodeid.sh" scp "./30-add_namespaces.sh" "$node": scp "./31-configure_interfaces.sh" "$node": scp "./32-setup_arp.sh" "$node": - run_script_via_ssh "$node_script" "$node" $USER_PASS + run_script_via_ssh "$node_setup_script" "$node" $USER_PASS } +# Setup wedge_setup setup_node 1 setup_node 2 -# read -p "YOU WILL NEED TO PRESS CTRL+C AT SOME POINT SINCE THE RECEIVER/SENDER WILL RUN INDEFINITELY. (Press any key to confirm.)" -n1 -s - +# Traffic TIMEOUT=30 ssh ncs-node1 "echo $USER_PASS | sudo -S timeout $TIMEOUT ip netns exec tb_node1_if0 python3 receiver.py 10.0.2.1 30123 30123" & ssh ncs-node2 "echo $USER_PASS | sudo -S timeout $TIMEOUT ip netns exec tb_node2_if0 python3 sender.py 10.0.1.1 30123 30123 100 128" +# Get log scp ncs-node1:timestamps_30123 . diff --git a/scripts/README.md b/scripts/README.md index 58cf44d..1c78c14 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -6,6 +6,9 @@ In this repository we're have scripts to setup a network testbed with You can run the script [./99-deployment.sh](./99-deployment.sh) for a sample deployment. +Keep in mind that there should be no switch program running on the wedge, +as it will freeze up when you try to run two switch programs. + ## Prerequisites - Hardware