Skip to content

Commit

Permalink
review comments for sysctl
Browse files Browse the repository at this point in the history
  • Loading branch information
jdn5126 committed Nov 29, 2022
1 parent 537baa7 commit efe208b
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 25 deletions.
34 changes: 17 additions & 17 deletions cmd/aws-vpc-cni-init/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,67 +68,67 @@ func getNodePrimaryIF() (string, error) {
return primaryIF, nil
}

func configureSystemParams(sys sysctl.Interface, primaryIF string) error {
func configureSystemParams(sysctlUtil sysctl.Interface, primaryIF string) error {
var err error
// Configure rp_filter in loose mode
entry := "net/ipv4/conf/" + primaryIF + "/rp_filter"
err = sys.SetSysctl(entry, 2)
err = sysctlUtil.Set(entry, 2)
if err != nil {
return errors.Wrapf(err, "Failed to set rp_filter for %s", primaryIF)
}
val, _ := sys.GetSysctl(entry)
val, _ := sysctlUtil.Get(entry)
log.Infof("Updated %s to %d", entry, val)

// Enable or disable TCP early demux based on environment variable
// Note that older kernels may not support tcp_early_demux, so we must first check that it exists.
entry = "net/ipv4/tcp_early_demux"
if _, err := sys.GetSysctl(entry); err != nil {
if _, err := sysctlUtil.Get(entry); err != nil {
disableIPv4EarlyDemux := getEnv(envDisableIPv4TcpEarlyDemux, "false")
if disableIPv4EarlyDemux == "true" {
err = sys.SetSysctl(entry, 0)
err = sysctlUtil.Set(entry, 0)
if err != nil {
return errors.Wrap(err, "Failed to disable tcp_early_demux")
}
} else {
err = sys.SetSysctl(entry, 1)
err = sysctlUtil.Set(entry, 1)
if err != nil {
return errors.Wrap(err, "Failed to enable tcp_early_demux")
}
}
val, _ = sys.GetSysctl(entry)
val, _ = sysctlUtil.Get(entry)
log.Infof("Updated %s to %d", entry, val)
}
return nil
}

func configureIPv6Settings(sys sysctl.Interface, primaryIF string) error {
func configureIPv6Settings(sysctlUtil sysctl.Interface, primaryIF string) error {
var err error
// Enable IPv6 when environment variable is set
// Note that IPv6 is not disabled when environment variable is unset. This is omitted to preserve default host semantics.
enableIPv6 := getEnv(envEnableIPv6, "false")
if enableIPv6 == "true" {
entry := "net/ipv6/conf/all/disable_ipv6"
err = sys.SetSysctl(entry, 0)
err = sysctlUtil.Set(entry, 0)
if err != nil {
return errors.Wrap(err, "Failed to set disable_ipv6 to 0")
}
val, _ := sys.GetSysctl(entry)
val, _ := sysctlUtil.Get(entry)
log.Infof("Updated %s to %d", entry, val)

entry = "net/ipv6/conf/all/forwarding"
err = sys.SetSysctl(entry, 1)
err = sysctlUtil.Set(entry, 1)
if err != nil {
return errors.Wrap(err, "Failed to enable ipv6 forwarding")
}
val, _ = sys.GetSysctl(entry)
val, _ = sysctlUtil.Get(entry)
log.Infof("Updated %s to %d", entry, val)

entry = "net/ipv6/conf/" + primaryIF + "/accept_ra"
err = sys.SetSysctl(entry, 2)
err = sysctlUtil.Set(entry, 2)
if err != nil {
return errors.Wrap(err, "Failed to enable ipv6 accept_ra")
}
val, _ = sys.GetSysctl(entry)
val, _ = sysctlUtil.Get(entry)
log.Infof("Updated %s to %d", entry, val)
}
return nil
Expand Down Expand Up @@ -166,14 +166,14 @@ func _main() int {
}
log.Infof("Found primaryIF %s", primaryIF)

sys := sysctl.New()
err = configureSystemParams(sys, primaryIF)
sysctlUtil := sysctl.New()
err = configureSystemParams(sysctlUtil, primaryIF)
if err != nil {
log.WithError(err).Errorf("Failed to configure system parameters")
return 1
}

err = configureIPv6Settings(sys, primaryIF)
err = configureIPv6Settings(sysctlUtil, primaryIF)
if err != nil {
log.WithError(err).Errorf("Failed to configure IPv6 settings")
return 1
Expand Down
16 changes: 8 additions & 8 deletions utils/sysctl/sysctl.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ const (

// Interface is an injectable interface for running sysctl commands.
type Interface interface {
// GetSysctl returns the value for the specified sysctl setting
GetSysctl(sysctl string) (int, error)
// SetSysctl modifies the specified sysctl flag to the new value
SetSysctl(sysctl string, newVal int) error
// Get returns the value for the specified sysctl setting
Get(sysctl string) (int, error)
// Set modifies the specified sysctl flag to the new value
Set(sysctl string, newVal int) error
}

// New returns a new Interface for accessing sysctl
Expand All @@ -30,8 +30,8 @@ func New() Interface {
type procSysctl struct {
}

// GetSysctl returns the value for the specified sysctl setting
func (*procSysctl) GetSysctl(sysctl string) (int, error) {
// Get returns the value for the specified sysctl setting
func (*procSysctl) Get(sysctl string) (int, error) {
data, err := ioutil.ReadFile(path.Join(sysctlBase, sysctl))
if err != nil {
return -1, err
Expand All @@ -43,7 +43,7 @@ func (*procSysctl) GetSysctl(sysctl string) (int, error) {
return val, nil
}

// SetSysctl modifies the specified sysctl flag to the new value
func (*procSysctl) SetSysctl(sysctl string, newVal int) error {
// Set modifies the specified sysctl flag to the new value
func (*procSysctl) Set(sysctl string, newVal int) error {
return ioutil.WriteFile(path.Join(sysctlBase, sysctl), []byte(strconv.Itoa(newVal)), 0640)
}

0 comments on commit efe208b

Please sign in to comment.