conn.go 941 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package udp
  2. import (
  3. "net/netip"
  4. "github.com/slackhq/nebula/config"
  5. "github.com/slackhq/nebula/packet"
  6. )
  7. const MTU = 9001
  8. type EncReader func(
  9. []*packet.Packet,
  10. )
  11. type Conn interface {
  12. Rebind() error
  13. LocalAddr() (netip.AddrPort, error)
  14. ListenOut(r EncReader)
  15. WriteTo(b []byte, addr netip.AddrPort) error
  16. ReloadConfig(c *config.C)
  17. Prep(pkt *packet.Packet, addr netip.AddrPort) error
  18. WriteBatch(pkt []*packet.Packet) (int, error)
  19. SupportsMultipleReaders() bool
  20. Close() error
  21. }
  22. type NoopConn struct{}
  23. func (NoopConn) Rebind() error {
  24. return nil
  25. }
  26. func (NoopConn) LocalAddr() (netip.AddrPort, error) {
  27. return netip.AddrPort{}, nil
  28. }
  29. func (NoopConn) ListenOut(_ EncReader) {
  30. return
  31. }
  32. func (NoopConn) SupportsMultipleReaders() bool {
  33. return false
  34. }
  35. func (NoopConn) WriteTo(_ []byte, _ netip.AddrPort) error {
  36. return nil
  37. }
  38. func (NoopConn) ReloadConfig(_ *config.C) {
  39. return
  40. }
  41. func (NoopConn) Close() error {
  42. return nil
  43. }