From 8e5384ee0160e324120695f32e4833bef7b17bad Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Tue, 11 Apr 2017 14:31:08 +0000 Subject: [PATCH] Create pcap veth for no-fastdp operation --- net/bridge.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/net/bridge.go b/net/bridge.go index 3b684c36..46841aab 100644 --- a/net/bridge.go +++ b/net/bridge.go @@ -17,6 +17,8 @@ type BridgeType int const ( WeaveBridgeName = "weave" DatapathName = "datapath" + BridgeIfName = "vethwe-bridge" + PcapIfaceName = "vethwe-pcap" None BridgeType = iota Bridge @@ -214,7 +216,7 @@ func CreateBridge(config *BridgeConfig) (BridgeType, error) { return bridgeType, nil } -func initBridge(config *BridgeConfig) error { +func initBridgePrep(config *BridgeConfig) error { mac, err := net.ParseMAC(config.Mac) if err != nil { return err @@ -231,6 +233,19 @@ func initBridge(config *BridgeConfig) error { return nil } +func initBridge(config *BridgeConfig) error { + if err := initBridgePrep(config); err != nil { + return err + } + if _, err := CreateAndAttachVeth(BridgeIfName, PcapIfaceName, config.WeaveBridgeName, config.MTU, true, func(veth netlink.Link) error { + return netlink.LinkSetUp(veth) + }); err != nil { + return err + } + + return nil +} + func initFastdp(config *BridgeConfig) error { datapath, err := netlink.LinkByName(config.DatapathName) if err != nil { @@ -243,7 +258,7 @@ func initBridgedFastdp(config *BridgeConfig) error { if err := initFastdp(config); err != nil { return err } - if err := initBridge(config); err != nil { + if err := initBridgePrep(config); err != nil { return err } if _, err := CreateAndAttachVeth("vethwe-bridge", "vethwe-datapath", config.WeaveBridgeName, config.MTU, true, func(veth netlink.Link) error {