Documentation
¶
Index ¶
- Constants
- type Server
- func (s *Server) Addr() net.Addr
- func (s *Server) Close() error
- func (s *Server) CloseCompatWSS() error
- func (s *Server) EnableCompatWSS(bindAddr string, pubKeyLookup bwss.PubKeyLookupFn) error
- func (s *Server) ListenAndServe(addr string) error
- func (s *Server) LocalNodeCount() int
- func (s *Server) PeerNodeCount() int
- func (s *Server) Ready() <-chan struct{}
- func (s *Server) RelayDropped() uint64
- func (s *Server) RelayForwarded() uint64
- func (s *Server) RelayNotFound() uint64
- func (s *Server) SendPunchCommand(nodeID uint32, targetIP net.IP, targetPort uint16) error
- func (s *Server) ServeHealth(addr string) error
- func (s *Server) SetAdvertiseAddr(addr string)
- func (s *Server) SetHealthy(ok bool)
- func (s *Server) SetRegistry(addr string)
- func (s *Server) SetRegistryAdminToken(token string)
- func (s *Server) WSSMetrics() bwss.Metrics
Constants ¶
const MaxReusePortShards = 0
MaxReusePortShards is unlimited on Linux — the kernel flow-hashes across all open SO_REUSEPORT sockets. 0 means "use the configured 2× NumCPU default in ListenAndServe."
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func NewWithPeers ¶
NewWithPeers creates a beacon server with gossip peer support. beaconID uniquely identifies this beacon instance (0 = standalone). peers is a list of peer beacon addresses for gossip exchange.
func (*Server) CloseCompatWSS ¶ added in v1.10.1
CloseCompatWSS shuts down the WSS bridge. Idempotent. Used by graceful shutdown paths and tests.
func (*Server) EnableCompatWSS ¶ added in v1.10.1
func (s *Server) EnableCompatWSS(bindAddr string, pubKeyLookup bwss.PubKeyLookupFn) error
EnableCompatWSS attaches a WSS-bridge listener for compat-mode daemons. After Start, the beacon's relay worker checks the WSS peer map BEFORE the UDP tier-1/2 lookups: relay packets destined for a WSS-connected daemon are written over WSS instead of UDP. Inbound WSS frames feed into handlePacket the same way UDP datagrams do, so the existing dispatch logic (BeaconMsgRelay, BeaconMsgDiscover, etc.) handles them without changes.
pubKeyLookup must return the Ed25519 pubkey registered for nodeID. In the rendezvous binary this is plumbed to the in-process registry's pubkey index.
Call this BEFORE ListenAndServe so the wssServer is in place when the first UDP datagram arrives.
func (*Server) ListenAndServe ¶
func (*Server) LocalNodeCount ¶
LocalNodeCount returns the number of locally registered nodes.
func (*Server) PeerNodeCount ¶
PeerNodeCount returns the number of nodes known via gossip from peer beacons.
func (*Server) Ready ¶
func (s *Server) Ready() <-chan struct{}
Ready returns a channel that is closed when the server has bound its port.
func (*Server) RelayDropped ¶ added in v1.9.0
RelayDropped returns the count of relay packets dropped (capacity / errors).
func (*Server) RelayForwarded ¶ added in v1.9.0
RelayForwarded returns the count of relay packets the beacon has forwarded since startup. Used by /api/stats to surface observable evidence that the relay path is live.
func (*Server) RelayNotFound ¶ added in v1.9.0
RelayNotFound returns the count of relay packets dropped because the destination node was not registered with the beacon.
func (*Server) SendPunchCommand ¶
SendPunchCommand tells a node to send UDP to a target endpoint.
func (*Server) ServeHealth ¶
ServeHealth starts a simple HTTP server with a /healthz endpoint for load balancer health checks.
func (*Server) SetAdvertiseAddr ¶ added in v1.9.1
SetAdvertiseAddr sets the address this beacon registers with the registry. When empty (default), the beacon auto-detects from its TCP local addr to the registry — which on a GCP MIG deployment yields the INTERNAL VPC address (10.128.0.x), unreachable from external daemons. MIG-deployed beacons must set this to the public DNAT entrypoint (e.g. the rendezvous reserved IP on UDP 9001) so external clients receive a routable address from beacon_list.
func (*Server) SetHealthy ¶
SetHealthy sets the health status (for graceful drain on scale-down).
func (*Server) SetRegistry ¶
SetRegistry sets the registry address for dynamic peer discovery. Safe to call at any time — protected by mu so the discovery loop does not race against a post-startup SetRegistry call.
func (*Server) SetRegistryAdminToken ¶ added in v1.10.0
SetRegistryAdminToken sets the admin token sent with beacon_register. Required when the registry enforces SEC-002 beacon registration auth.
func (*Server) WSSMetrics ¶ added in v1.10.1
WSSMetrics returns the live WSS-bridge metrics, or zero values if EnableCompatWSS was never called. Used by the dashboard / Prom scrape to expose compat-mode visibility.