|
|
@@ -13,7 +13,6 @@ import (
|
|
|
|
|
|
"github.com/slackhq/nebula/firewall"
|
|
|
"github.com/slackhq/nebula/header"
|
|
|
- "github.com/slackhq/nebula/udp"
|
|
|
"golang.org/x/net/ipv4"
|
|
|
)
|
|
|
|
|
|
@@ -23,7 +22,7 @@ const (
|
|
|
|
|
|
var ErrOutOfWindow = errors.New("out of window packet")
|
|
|
|
|
|
-func (f *Interface) readOutsidePackets(via ViaSender, out []byte, packet []byte, h *header.H, fwPacket *firewall.Packet, lhf *LightHouseHandler, nb []byte, q int, localCache firewall.ConntrackCache, meta udp.RxMeta) {
|
|
|
+func (f *Interface) readOutsidePackets(via ViaSender, out []byte, packet []byte, h *header.H, fwPacket *firewall.Packet, lhf *LightHouseHandler, nb []byte, q int, localCache firewall.ConntrackCache) {
|
|
|
err := h.Parse(packet)
|
|
|
if err != nil {
|
|
|
// Hole punch packets are 0 or 1 byte big, so lets ignore printing those errors
|
|
|
@@ -111,7 +110,7 @@ func (f *Interface) readOutsidePackets(via ViaSender, out []byte, packet []byte,
|
|
|
|
|
|
// Relay packets are special
|
|
|
if isMessageRelay {
|
|
|
- f.handleOutsideRelayPacket(hostinfo, via, out, packet, h, fwPacket, lhf, nb, q, localCache, meta)
|
|
|
+ f.handleOutsideRelayPacket(hostinfo, via, out, packet, h, fwPacket, lhf, nb, q, localCache)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
@@ -135,7 +134,7 @@ func (f *Interface) readOutsidePackets(via ViaSender, out []byte, packet []byte,
|
|
|
case header.Message:
|
|
|
switch h.Subtype {
|
|
|
case header.MessageNone:
|
|
|
- f.handleOutsideMessagePacket(hostinfo, out, packet, fwPacket, nb, q, localCache, meta)
|
|
|
+ f.handleOutsideMessagePacket(hostinfo, out, packet, fwPacket, nb, q, localCache)
|
|
|
default:
|
|
|
hostinfo.logger(f.l).Error("IsValidSubType was true, but unexpected message subtype seen", "from", via, "header", h)
|
|
|
return
|
|
|
@@ -168,7 +167,7 @@ func (f *Interface) readOutsidePackets(via ViaSender, out []byte, packet []byte,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func (f *Interface) handleOutsideRelayPacket(hostinfo *HostInfo, via ViaSender, out []byte, packet []byte, h *header.H, fwPacket *firewall.Packet, lhf *LightHouseHandler, nb []byte, q int, localCache firewall.ConntrackCache, meta udp.RxMeta) {
|
|
|
+func (f *Interface) handleOutsideRelayPacket(hostinfo *HostInfo, via ViaSender, out []byte, packet []byte, h *header.H, fwPacket *firewall.Packet, lhf *LightHouseHandler, nb []byte, q int, localCache firewall.ConntrackCache) {
|
|
|
// The entire body is sent as AD, not encrypted.
|
|
|
// The packet consists of a 16-byte parsed Nebula header, Associated Data-protected payload, and a trailing 16-byte AEAD signature value.
|
|
|
// The packet is guaranteed to be at least 16 bytes at this point, b/c it got past the h.Parse() call above. If it's
|
|
|
@@ -211,7 +210,7 @@ func (f *Interface) handleOutsideRelayPacket(hostinfo *HostInfo, via ViaSender,
|
|
|
relay: relay,
|
|
|
IsRelayed: true,
|
|
|
}
|
|
|
- f.readOutsidePackets(via, out[:0], signedPayload, h, fwPacket, lhf, nb, q, localCache, meta)
|
|
|
+ f.readOutsidePackets(via, out[:0], signedPayload, h, fwPacket, lhf, nb, q, localCache)
|
|
|
case ForwardingType:
|
|
|
// Find the target HostInfo relay object
|
|
|
targetHI, targetRelay, err := f.hostMap.QueryVpnAddrsRelayFor(hostinfo.vpnAddrs, relay.PeerAddr)
|
|
|
@@ -512,7 +511,7 @@ func (f *Interface) decrypt(hostinfo *HostInfo, mc uint64, out []byte, packet []
|
|
|
return out, nil
|
|
|
}
|
|
|
|
|
|
-func (f *Interface) handleOutsideMessagePacket(hostinfo *HostInfo, out []byte, packet []byte, fwPacket *firewall.Packet, nb []byte, q int, localCache firewall.ConntrackCache, meta udp.RxMeta) {
|
|
|
+func (f *Interface) handleOutsideMessagePacket(hostinfo *HostInfo, out []byte, packet []byte, fwPacket *firewall.Packet, nb []byte, q int, localCache firewall.ConntrackCache) {
|
|
|
err := newPacket(out, true, fwPacket)
|
|
|
if err != nil {
|
|
|
hostinfo.logger(f.l).Warn("Error while validating inbound packet",
|