2021-11-03 20:54:04 -05:00
|
|
|
package udp
|
|
|
|
|
|
|
|
|
|
import (
|
2024-07-31 10:18:56 -05:00
|
|
|
"net/netip"
|
|
|
|
|
|
2023-06-14 10:48:52 -05:00
|
|
|
"github.com/slackhq/nebula/config"
|
2021-11-03 20:54:04 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const MTU = 9001
|
|
|
|
|
|
|
|
|
|
type EncReader func(
|
2024-07-31 10:18:56 -05:00
|
|
|
addr netip.AddrPort,
|
2025-03-06 11:28:26 -06:00
|
|
|
payload []byte,
|
2021-11-03 20:54:04 -05:00
|
|
|
)
|
2023-06-14 10:48:52 -05:00
|
|
|
|
|
|
|
|
type Conn interface {
|
|
|
|
|
Rebind() error
|
2024-07-31 10:18:56 -05:00
|
|
|
LocalAddr() (netip.AddrPort, error)
|
2025-03-06 11:28:26 -06:00
|
|
|
ListenOut(r EncReader)
|
2024-07-31 10:18:56 -05:00
|
|
|
WriteTo(b []byte, addr netip.AddrPort) error
|
2023-06-14 10:48:52 -05:00
|
|
|
ReloadConfig(c *config.C)
|
2025-11-19 14:10:11 -05:00
|
|
|
SupportsMultipleReaders() bool
|
2023-07-10 12:43:48 -05:00
|
|
|
Close() error
|
2023-06-14 10:48:52 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type NoopConn struct{}
|
|
|
|
|
|
|
|
|
|
func (NoopConn) Rebind() error {
|
|
|
|
|
return nil
|
|
|
|
|
}
|
2024-07-31 10:18:56 -05:00
|
|
|
func (NoopConn) LocalAddr() (netip.AddrPort, error) {
|
|
|
|
|
return netip.AddrPort{}, nil
|
2023-06-14 10:48:52 -05:00
|
|
|
}
|
2025-03-06 11:28:26 -06:00
|
|
|
func (NoopConn) ListenOut(_ EncReader) {
|
2023-06-14 10:48:52 -05:00
|
|
|
return
|
|
|
|
|
}
|
2025-11-19 14:10:11 -05:00
|
|
|
func (NoopConn) SupportsMultipleReaders() bool {
|
|
|
|
|
return false
|
|
|
|
|
}
|
2024-07-31 10:18:56 -05:00
|
|
|
func (NoopConn) WriteTo(_ []byte, _ netip.AddrPort) error {
|
2023-06-14 10:48:52 -05:00
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
func (NoopConn) ReloadConfig(_ *config.C) {
|
|
|
|
|
return
|
|
|
|
|
}
|
2023-07-10 12:43:48 -05:00
|
|
|
func (NoopConn) Close() error {
|
|
|
|
|
return nil
|
|
|
|
|
}
|