MCPcopy Create free account
hub / github.com/baidu/EasyFaaS / Init

Method Init

pkg/funclet/network/veth_linux.go:32–53  ·  view source on GitHub ↗
(pid int, bridgeName string)

Source from the content-addressed store, hash-verified

30)
31
32func (v *Veth) Init(pid int, bridgeName string) error {
33 br, err := netlink.LinkByName(bridgeName)
34 if err != nil {
35 return fmt.Errorf("getting link %s failed: %v", bridgeName, err)
36 }
37
38 la := netlink.NewLinkAttrs()
39 la.Name = fmt.Sprintf("%s-%d", "miniv", pid)
40 la.MasterIndex = br.Attrs().Index
41
42 v.vethPair = &netlink.Veth{
43 LinkAttrs: la,
44 PeerName: fmt.Sprintf("ethc%d", pid),
45 }
46 v.ContainerPID = pid
47
48 if err := netlink.LinkAdd(v.vethPair); err != nil {
49 return fmt.Errorf("create veth pair named [ %#v ] failed: %v", v.vethPair, err)
50 }
51
52 return nil
53}
54
55func (v *Veth) BindContainer(gatewayIP string, addr *net.IPNet) error {
56 logs.Infof("start bind container(pid: %d) with veth(ip: %s)", v.ContainerPID, addr.IP.String())

Callers 1

SetContainerNetMethod · 0.45

Calls 1

ErrorfMethod · 0.80

Tested by

no test coverage detected