github.com/zhuohuang-hust/src-cbuild@v0.0.0-20230105071821-c7aab3e7c840/mergeCode/libnetwork/drivers/bridge/setup_ip_forwarding.go (about) 1 package bridge 2 3 import ( 4 "fmt" 5 "io/ioutil" 6 ) 7 8 const ( 9 ipv4ForwardConf = "/proc/sys/net/ipv4/ip_forward" 10 ipv4ForwardConfPerm = 0644 11 ) 12 13 func setupIPForwarding() error { 14 // Get current IPv4 forward setup 15 ipv4ForwardData, err := ioutil.ReadFile(ipv4ForwardConf) 16 if err != nil { 17 return fmt.Errorf("Cannot read IP forwarding setup: %v", err) 18 } 19 20 // Enable IPv4 forwarding only if it is not already enabled 21 if ipv4ForwardData[0] != '1' { 22 // Enable IPv4 forwarding 23 if err := ioutil.WriteFile(ipv4ForwardConf, []byte{'1', '\n'}, ipv4ForwardConfPerm); err != nil { 24 return fmt.Errorf("Setup IP forwarding failed: %v", err) 25 } 26 } 27 28 return nil 29 }