Skip to content
This repository was archived by the owner on Feb 19, 2025. It is now read-only.

Commit b521287

Browse files
authored
Merge pull request #38 from kanocz/master
Re-enable reuseport
2 parents 04c3ca1 + a7c3c95 commit b521287

File tree

7 files changed

+24
-18
lines changed

7 files changed

+24
-18
lines changed

cmd/cnetflow/cnetflow.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ var (
1818
buildinfos = ""
1919
AppVersion = "GoFlow NetFlow " + version + " " + buildinfos
2020

21-
Addr = flag.String("addr", "", "NetFlow/IPFIX listening address")
22-
Port = flag.Int("port", 2055, "NetFlow/IPFIX listening port")
21+
Addr = flag.String("addr", "", "NetFlow/IPFIX listening address")
22+
Port = flag.Int("port", 2055, "NetFlow/IPFIX listening port")
23+
Reuse = flag.Bool("reuse", false, "Enable so_reuseport for NetFlow/IPFIX listening port")
2324

2425
Workers = flag.Int("workers", 1, "Number of NetFlow workers")
2526
LogLevel = flag.String("loglevel", "info", "Log level")
@@ -80,7 +81,7 @@ func main() {
8081
"Type": "NetFlow"}).
8182
Infof("Listening on UDP %v:%v", *Addr, *Port)
8283

83-
err := s.FlowRoutine(*Workers, *Addr, *Port)
84+
err := s.FlowRoutine(*Workers, *Addr, *Port, *Reuse)
8485
if err != nil {
8586
log.Fatalf("Fatal error: could not listen to UDP (%v)", err)
8687
}

cmd/cnflegacy/cnflegacy.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ var (
1818
buildinfos = ""
1919
AppVersion = "GoFlow NetFlowV5 " + version + " " + buildinfos
2020

21-
Addr = flag.String("addr", "", "NetFlow v5 listening address")
22-
Port = flag.Int("port", 2055, "NetFlow v5 listening port")
21+
Addr = flag.String("addr", "", "NetFlow v5 listening address")
22+
Port = flag.Int("port", 2055, "NetFlow v5 listening port")
23+
Reuse = flag.Bool("reuse", false, "Enable so_reuseport for NetFlow v5 listening port")
2324

2425
Workers = flag.Int("workers", 1, "Number of NetFlow v5 workers")
2526
LogLevel = flag.String("loglevel", "info", "Log level")
@@ -78,7 +79,7 @@ func main() {
7879
"Type": "NetFlowLegacy"}).
7980
Infof("Listening on UDP %v:%v", *Addr, *Port)
8081

81-
err := s.FlowRoutine(*Workers, *Addr, *Port)
82+
err := s.FlowRoutine(*Workers, *Addr, *Port, *Reuse)
8283
if err != nil {
8384
log.Fatalf("Fatal error: could not listen to UDP (%v)", err)
8485
}

cmd/csflow/csflow.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ var (
1818
buildinfos = ""
1919
AppVersion = "GoFlow sFlow " + version + " " + buildinfos
2020

21-
Addr = flag.String("addr", "", "sFlow listening address")
22-
Port = flag.Int("port", 6343, "sFlow listening port")
21+
Addr = flag.String("addr", "", "sFlow listening address")
22+
Port = flag.Int("port", 6343, "sFlow listening port")
23+
Reuse = flag.Bool("reuse", false, "Enable so_reuseport for sFlow listening port")
2324

2425
Workers = flag.Int("workers", 1, "Number of sFlow workers")
2526
LogLevel = flag.String("loglevel", "info", "Log level")
@@ -78,7 +79,7 @@ func main() {
7879
"Type": "sFlow"}).
7980
Infof("Listening on UDP %v:%v", *Addr, *Port)
8081

81-
err := s.FlowRoutine(*Workers, *Addr, *Port)
82+
err := s.FlowRoutine(*Workers, *Addr, *Port, *Reuse)
8283
if err != nil {
8384
log.Fatalf("Fatal error: could not listen to UDP (%v)", err)
8485
}

cmd/goflow/goflow.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,17 @@ var (
2323
SFlowEnable = flag.Bool("sflow", true, "Enable sFlow")
2424
SFlowAddr = flag.String("sflow.addr", "", "sFlow listening address")
2525
SFlowPort = flag.Int("sflow.port", 6343, "sFlow listening port")
26+
SFlowReuse = flag.Bool("sflow.reuserport", false, "Enable so_reuseport for sFlow")
2627

2728
NFLEnable = flag.Bool("nfl", true, "Enable NetFlow v5")
2829
NFLAddr = flag.String("nfl.addr", "", "NetFlow v5 listening address")
2930
NFLPort = flag.Int("nfl.port", 2056, "NetFlow v5 listening port")
31+
NFLReuse = flag.Bool("nfl.reuserport", false, "Enable so_reuseport for NetFlow v5")
3032

3133
NFEnable = flag.Bool("nf", true, "Enable NetFlow/IPFIX")
3234
NFAddr = flag.String("nf.addr", "", "NetFlow/IPFIX listening address")
3335
NFPort = flag.Int("nf.port", 2055, "NetFlow/IPFIX listening port")
36+
NFReuse = flag.Bool("nf.reuserport", false, "Enable so_reuseport for NetFlow/IPFIX")
3437

3538
Workers = flag.Int("workers", 1, "Number of workers per collector")
3639
LogLevel = flag.String("loglevel", "info", "Log level")
@@ -109,7 +112,7 @@ func main() {
109112
"Type": "sFlow"}).
110113
Infof("Listening on UDP %v:%v", *SFlowAddr, *SFlowPort)
111114

112-
err := sSFlow.FlowRoutine(*Workers, *SFlowAddr, *SFlowPort)
115+
err := sSFlow.FlowRoutine(*Workers, *SFlowAddr, *SFlowPort, *SFlowReuse)
113116
if err != nil {
114117
log.Fatalf("Fatal error: could not listen to UDP (%v)", err)
115118
}
@@ -123,7 +126,7 @@ func main() {
123126
"Type": "NetFlow"}).
124127
Infof("Listening on UDP %v:%v", *NFAddr, *NFPort)
125128

126-
err := sNF.FlowRoutine(*Workers, *NFAddr, *NFPort)
129+
err := sNF.FlowRoutine(*Workers, *NFAddr, *NFPort, *NFReuse)
127130
if err != nil {
128131
log.Fatalf("Fatal error: could not listen to UDP (%v)", err)
129132
}
@@ -137,7 +140,7 @@ func main() {
137140
"Type": "NetFlowLegacy"}).
138141
Infof("Listening on UDP %v:%v", *NFLAddr, *NFLPort)
139142

140-
err := sNFL.FlowRoutine(*Workers, *NFLAddr, *NFLPort)
143+
err := sNFL.FlowRoutine(*Workers, *NFLAddr, *NFLPort, *NFLReuse)
141144
if err != nil {
142145
log.Fatalf("Fatal error: could not listen to UDP (%v)", err)
143146
}

utils/netflow.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ func (s *StateNetFlow) InitTemplates() {
343343
s.samplinglock = &sync.RWMutex{}
344344
}
345345

346-
func (s *StateNetFlow) FlowRoutine(workers int, addr string, port int) error {
346+
func (s *StateNetFlow) FlowRoutine(workers int, addr string, port int, reuseport bool) error {
347347
s.InitTemplates()
348-
return UDPRoutine("NetFlow", s.DecodeFlow, workers, addr, port, false, s.Logger)
348+
return UDPRoutine("NetFlow", s.DecodeFlow, workers, addr, port, reuseport, s.Logger)
349349
}

utils/nflegacy.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,6 @@ func (s *StateNFLegacy) DecodeFlow(msg interface{}) error {
7878
return nil
7979
}
8080

81-
func (s *StateNFLegacy) FlowRoutine(workers int, addr string, port int) error {
82-
return UDPRoutine("NetFlowV5", s.DecodeFlow, workers, addr, port, false, s.Logger)
81+
func (s *StateNFLegacy) FlowRoutine(workers int, addr string, port int, reuseport bool) error {
82+
return UDPRoutine("NetFlowV5", s.DecodeFlow, workers, addr, port, reuseport, s.Logger)
8383
}

utils/sflow.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,6 @@ func (s *StateSFlow) DecodeFlow(msg interface{}) error {
130130
return nil
131131
}
132132

133-
func (s *StateSFlow) FlowRoutine(workers int, addr string, port int) error {
134-
return UDPRoutine("sFlow", s.DecodeFlow, workers, addr, port, false, s.Logger)
133+
func (s *StateSFlow) FlowRoutine(workers int, addr string, port int, reuseport bool) error {
134+
return UDPRoutine("sFlow", s.DecodeFlow, workers, addr, port, reuseport, s.Logger)
135135
}

0 commit comments

Comments
 (0)