diff --git a/router/network_overlay.go b/router/network_overlay.go new file mode 100644 index 00000000..8d80594b --- /dev/null +++ b/router/network_overlay.go @@ -0,0 +1,46 @@ +package router + +// Interface to overlay network packet handling +type NetworkOverlay interface { + Overlay + + // The routes have changed, so any cached information should + // be discarded. + InvalidateRoutes() + + // A mapping of a short id to a peer has changed + InvalidateShortIDs() + + // Start consuming forwarded packets. + StartConsumingPackets(*Peer, *Peers, OverlayConsumer) error +} + +// When a consumer is called, the decoder will already have been used +// to decode the frame. +type OverlayConsumer func(ForwardPacketKey) FlowOp + +// All of the machinery to forward packets to a particular peer +type OverlayForwarder interface { + OverlayConnection + // Forward a packet across the connection. May be called as soon + // as the overlay connection is created, in particular before + // Confirm(). The return value nil means the key could not be + // handled by this forwarder. + Forward(ForwardPacketKey) FlowOp +} + +type NullNetworkOverlay struct{ NullOverlay } + +func (NullNetworkOverlay) InvalidateRoutes() { +} + +func (NullNetworkOverlay) InvalidateShortIDs() { +} + +func (NullNetworkOverlay) StartConsumingPackets(*Peer, *Peers, OverlayConsumer) error { + return nil +} + +func (NullNetworkOverlay) Forward(ForwardPacketKey) FlowOp { + return DiscardingFlowOp{} +} diff --git a/router/overlay.go b/router/overlay.go index 27dd896d..13fd0428 100644 --- a/router/overlay.go +++ b/router/overlay.go @@ -16,21 +16,6 @@ type Overlay interface { Diagnostics() interface{} } -// Interface to overlay network packet handling -type NetworkOverlay interface { - Overlay - - // The routes have changed, so any cached information should - // be discarded. - InvalidateRoutes() - - // A mapping of a short id to a peer has changed - InvalidateShortIDs() - - // Start consuming forwarded packets. - StartConsumingPackets(*Peer, *Peers, OverlayConsumer) error -} - type OverlayConnectionParams struct { RemotePeer *Peer @@ -62,10 +47,6 @@ type OverlayConnectionParams struct { Features map[string]string } -// When a consumer is called, the decoder will already have been used -// to decode the frame. -type OverlayConsumer func(ForwardPacketKey) FlowOp - // All of the machinery to manage overlay connectivity to a particular // peer type OverlayConnection interface { @@ -95,16 +76,6 @@ type OverlayConnection interface { DisplayName() string } -// All of the machinery to forward packets to a particular peer -type OverlayForwarder interface { - OverlayConnection - // Forward a packet across the connection. May be called as soon - // as the overlay connection is created, in particular before - // Confirm(). The return value nil means the key could not be - // handled by this forwarder. - Forward(ForwardPacketKey) FlowOp -} - type NullOverlay struct{} func (NullOverlay) AddFeaturesTo(map[string]string) { @@ -137,19 +108,3 @@ func (NullOverlay) ControlMessage(byte, []byte) { func (NullOverlay) DisplayName() string { return "null" } - -type NullNetworkOverlay struct{ NullOverlay } - -func (NullNetworkOverlay) InvalidateRoutes() { -} - -func (NullNetworkOverlay) InvalidateShortIDs() { -} - -func (NullNetworkOverlay) StartConsumingPackets(*Peer, *Peers, OverlayConsumer) error { - return nil -} - -func (NullNetworkOverlay) Forward(ForwardPacketKey) FlowOp { - return DiscardingFlowOp{} -}