77 lines
2.3 KiB
Bash
Executable File
77 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
WEDGE_PASS="sudopasswordforwedge"
|
|
USER_PASS="asdf1234"
|
|
|
|
run_script_via_ssh() {
|
|
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
|
|
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
|
|
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
|
|
}
|
|
|
|
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"
|
|
ssh ncs-wedge "echo $WEDGE_PASS | sudo -S systemctl daemon-reload"
|
|
ssh ncs-wedge "echo $WEDGE_PASS | sudo -S systemctl start l1switch.service"
|
|
|
|
echo "WAITING FOR BFSHELL..."
|
|
sleep 30
|
|
|
|
scp ./03-wedge_port_configure.command ncs-wedge:/tmp/
|
|
ssh ncs-wedge "/home/user/bf-sde-9.7.0/install/bin/bfshell -f /tmp/03-wedge_port_configure.command"
|
|
|
|
scp ./04-wedge_route_configure.py ncs-wedge:/tmp/
|
|
ssh ncs-wedge "/home/user/bf-sde-9.7.0/install/bin/bfshell -b /tmp/04-wedge_route_configure.py"
|
|
}
|
|
|
|
setup_node() {
|
|
local nodeid="$1"
|
|
local node="ncs-node$nodeid"
|
|
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_setup_script" "$node" $USER_PASS
|
|
}
|
|
|
|
# Setup
|
|
wedge_setup
|
|
setup_node 1
|
|
setup_node 2
|
|
|
|
# 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 .
|