diff --git a/internal/pkg/shell/shell.go b/internal/pkg/shell/shell.go index 5f11609..f973c21 100644 --- a/internal/pkg/shell/shell.go +++ b/internal/pkg/shell/shell.go @@ -143,7 +143,7 @@ func (node *Node) DeleteNode() []string { // DeleteSwitch Delete bridge func (br *Switch) DeleteSwitch() string { - deleteBrCmd := fmt.Sprintf("ip link delete %s", br.Name) + deleteBrCmd := fmt.Sprintf("ovs-vsctl del-br %s", br.Name) return deleteBrCmd } @@ -203,7 +203,7 @@ func GenerateFile() (string, error) { postinit := PostInit{ Cmds: []Cmd{ Cmd{ - Cmd: "", + Cmd: "echo hoge", }, }, } @@ -217,43 +217,91 @@ func GenerateFile() (string, error) { } nodes := Node{ - Name: "", - Image: "", + Name: "R1", + Image: "slankdev/ubuntu18.04", NetBase: "", Interfaces: []Interface{ Interface{ - Name: "", - Type: "", - Args: "", + Name: "net0", + Type: "direct", + Args: "C1#net0", + }, + Interface{ + Name: "net1", + Type: "bridge", + Args: "B0", + }, + Interface{ + Name: "net2", + Type: "veth", + Args: "peer0", + }, + Interface{ + Name: "net3", + Type: "phys", }, }, } switches := Switch{ - Name: "", + Name: "B0", Interfaces: []Interface{ Interface{ - Name: "", - Type: "", - Args: "", + Name: "net0", + Type: "docker", + Args: "R1", + }, + Interface{ + Name: "net0", + Type: "netns", + Args: "R2", }, }, } - nodeConfig := NodeConfig{ - Name: "", - Cmds: []Cmd{ - Cmd{ - Cmd: "", + nodeConfigs := []NodeConfig{ + NodeConfig{ + Name: "C0", + Cmds: []Cmd{ + Cmd{ + Cmd: "ip link set dev net0 up", + }, + }, + }, + NodeConfig{ + Name: "C1", + Cmds: []Cmd{ + Cmd{ + Cmd: "echo slankdev slankdev", + }, + Cmd{ + Cmd: "echo slankdev &&\necho slankdev", + }, }, }, } - test := Test{ - Name: "", - Cmds: []Cmd{ - Cmd{ - Cmd: "", + tests := []Test{ + Test{ + Name: "p2p", + Cmds: []Cmd{ + Cmd{ + Cmd: "docker exec C0 ping -c2 10.0.0.2", + }, + Cmd{ + Cmd: "echo hoge", + }, + }, + }, + Test{ + Name: "lo", + Cmds: []Cmd{ + Cmd{ + Cmd: "docker exec C0 ping -c2 10.255.0.1", + }, + Cmd{ + Cmd: "echo hoge", + }, }, }, } @@ -265,8 +313,8 @@ func GenerateFile() (string, error) { PostFini: []PostFini{postfini}, Nodes: []Node{nodes}, Switches: []Switch{switches}, - NodeConfigs: []NodeConfig{nodeConfig}, - Test: []Test{test}, + NodeConfigs: nodeConfigs, + Test: tests, } data, err := yaml.Marshal(tnconfig) @@ -404,7 +452,7 @@ func NetnsLinkUp(netnsName string, linkName string) string { func (bridge *Switch) CreateSwitch() []string { var createSwitchCmds []string - addSwitchCmd := fmt.Sprintf("ip link add %s type bridge", bridge.Name) + addSwitchCmd := fmt.Sprintf("ovs-vsctl add-br %s", bridge.Name) createSwitchCmds = append(createSwitchCmds, addSwitchCmd) bridgeUpCmd := HostLinkUp(bridge.Name) @@ -445,7 +493,7 @@ func (inf *Interface) S2nLink(nodeName string) []string { s2nLinkCmds = append(s2nLinkCmds, s2nLinkCmd) s2nLinkCmds = append(s2nLinkCmds, NetnsLinkUp(nodeName, nodeinf)) s2nLinkCmds = append(s2nLinkCmds, HostLinkUp(peerBrInf)) - setBrLinkCmd := fmt.Sprintf("ip link set dev %s master %s", peerBrInf, peerBr) + setBrLinkCmd := fmt.Sprintf("ovs-vsctl add-port %s %s", peerBr, peerBrInf) s2nLinkCmds = append(s2nLinkCmds, setBrLinkCmd) return s2nLinkCmds diff --git a/internal/pkg/shell/shell_test.go b/internal/pkg/shell/shell_test.go index 0a293e3..215decb 100644 --- a/internal/pkg/shell/shell_test.go +++ b/internal/pkg/shell/shell_test.go @@ -219,7 +219,7 @@ func TestSwitch_DeleteSwitch(t *testing.T) { }, }, }, - want: "ip link delete SW", + want: "ovs-vsctl del-br SW", }, } for _, tt := range tests { @@ -716,7 +716,7 @@ func TestSwitch_CreateSwitch(t *testing.T) { }, }, }, - want: []string{"ip link add SW type bridge", "ip link set SW up"}, + want: []string{"ovs-vsctl add-br SW", "ip link set SW up"}, }, } for _, tt := range tests { @@ -815,7 +815,7 @@ func TestInterface_S2nLink(t *testing.T) { args: args{ nodeName: "R1", }, - want: []string{"ip link add net0 netns R1 type veth peer name SW-R1", "ip netns exec R1 ip link set net0 up", "ip link set SW-R1 up", "ip link set dev SW-R1 master SW"}, + want: []string{"ip link add net0 netns R1 type veth peer name SW-R1", "ip netns exec R1 ip link set net0 up", "ip link set SW-R1 up", "ovs-vsctl add-port SW SW-R1"}, }, } for _, tt := range tests {