Skip to content
This repository has been archived by the owner on May 12, 2021. It is now read-only.

Commit

Permalink
test: Add test to verify tc redirect
Browse files Browse the repository at this point in the history
The test verifies tc filter setup by creating a test veth interface.

Signed-off-by: Archana Shinde <[email protected]>
  • Loading branch information
amshinde committed Oct 22, 2018
1 parent fed9887 commit 71e7fa6
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions virtcontainers/network_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -339,3 +339,41 @@ func TestCreateMacVtap(t *testing.T) {
err = netHandle.LinkDel(brLink)
assert.NoError(err)
}

func TestTcRedirectNetwork(t *testing.T) {
if os.Geteuid() != 0 {
t.Skip(testDisabledAsNonRoot)
}

assert := assert.New(t)

netHandle, err := netlink.NewHandle()
assert.NoError(err)
defer netHandle.Delete()

// Create a test veth interface.
vethName := "foo"
veth := &netlink.Veth{LinkAttrs: netlink.LinkAttrs{Name: vethName, TxQLen: 200, MTU: 1400}, PeerName: "bar"}

err = netlink.LinkAdd(veth)
assert.NoError(err)

endpoint, err := createVethNetworkEndpoint(1, vethName, NetXConnectTCFilterModel)
assert.NoError(err)

link, err := netlink.LinkByName(vethName)
assert.NoError(err)

err = netHandle.LinkSetUp(link)
assert.NoError(err)

err = setupTCFiltering(endpoint, 1, true)
assert.NoError(err)

err = removeTCFiltering(endpoint)
assert.NoError(err)

// Remove the veth created for testing.
err = netHandle.LinkDel(link)
assert.NoError(err)
}

0 comments on commit 71e7fa6

Please sign in to comment.