From 5da973d465e5e437a80cb1bd14a14b3e75a130ac Mon Sep 17 00:00:00 2001 From: Archana Shinde Date: Thu, 18 Oct 2018 17:03:26 -0700 Subject: [PATCH] test: Add test to verify tc redirect The test verifies tc filter setup by creating a test veth interface. Signed-off-by: Archana Shinde --- virtcontainers/network_test.go | 38 ++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/virtcontainers/network_test.go b/virtcontainers/network_test.go index 38265f9ab..a599eceda 100644 --- a/virtcontainers/network_test.go +++ b/virtcontainers/network_test.go @@ -340,3 +340,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) +}