Skip to content

Commit baed5f4

Browse files
committed
TUN-6308: Add debug logs to see if packets are sent/received from edge
1 parent 08a8101 commit baed5f4

File tree

4 files changed

+26
-15
lines changed

4 files changed

+26
-15
lines changed

connection/quic.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func NewQUICConnection(
5858
return nil, fmt.Errorf("failed to dial to edge: %w", err)
5959
}
6060

61-
datagramMuxer, err := quicpogs.NewDatagramMuxer(session)
61+
datagramMuxer, err := quicpogs.NewDatagramMuxer(session, logger)
6262
if err != nil {
6363
return nil, err
6464
}
@@ -217,7 +217,7 @@ func (q *QUICConnection) RegisterUdpSession(ctx context.Context, sessionID uuid.
217217

218218
go q.serveUDPSession(session, closeAfterIdleHint)
219219

220-
q.logger.Debug().Msgf("Registered session %v, %v, %v", sessionID, dstIP, dstPort)
220+
q.logger.Debug().Str("sessionID", sessionID.String()).Str("src", originProxy.LocalAddr().String()).Str("dst", fmt.Sprintf("%s:%d", dstIP, dstPort)).Msgf("Registered session")
221221
return nil
222222
}
223223

ingress/origin_udp_proxy.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@ import (
66
"net"
77
)
88

9-
type UDPProxy struct {
9+
type UDPProxy interface {
1010
io.ReadWriteCloser
11+
LocalAddr() net.Addr
1112
}
1213

13-
func DialUDP(dstIP net.IP, dstPort uint16) (*UDPProxy, error) {
14+
type udpProxy struct {
15+
*net.UDPConn
16+
}
17+
18+
func DialUDP(dstIP net.IP, dstPort uint16) (UDPProxy, error) {
1419
dstAddr := &net.UDPAddr{
1520
IP: dstIP,
1621
Port: int(dstPort),
@@ -23,5 +28,5 @@ func DialUDP(dstIP net.IP, dstPort uint16) (*UDPProxy, error) {
2328
return nil, fmt.Errorf("unable to create UDP proxy to origin (%v:%v): %w", dstIP, dstPort, err)
2429
}
2530

26-
return &UDPProxy{udpConn}, nil
31+
return &udpProxy{udpConn}, nil
2732
}

quic/datagram.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,22 @@ import (
66
"github.com/google/uuid"
77
"github.com/lucas-clemente/quic-go"
88
"github.com/pkg/errors"
9+
"github.com/rs/zerolog"
910
)
1011

1112
const (
1213
sessionIDLen = len(uuid.UUID{})
1314
)
1415

1516
type DatagramMuxer struct {
16-
ID uuid.UUID
1717
session quic.Session
18+
logger *zerolog.Logger
1819
}
1920

20-
func NewDatagramMuxer(quicSession quic.Session) (*DatagramMuxer, error) {
21-
muxerID, err := uuid.NewRandom()
22-
if err != nil {
23-
return nil, err
24-
}
21+
func NewDatagramMuxer(quicSession quic.Session, logger *zerolog.Logger) (*DatagramMuxer, error) {
2522
return &DatagramMuxer{
26-
ID: muxerID,
2723
session: quicSession,
24+
logger: logger,
2825
}, nil
2926
}
3027

@@ -42,6 +39,7 @@ func (dm *DatagramMuxer) SendTo(sessionID uuid.UUID, payload []byte) error {
4239
if err := dm.session.SendMessage(msgWithID); err != nil {
4340
return errors.Wrap(err, "Failed to send datagram back to edge")
4441
}
42+
dm.logger.Debug().Str("sessionID", sessionID.String()).Int("bytes", len(payload)).Msg("Send datagram back to edge")
4543
return nil
4644
}
4745

@@ -53,7 +51,12 @@ func (dm *DatagramMuxer) ReceiveFrom() (uuid.UUID, []byte, error) {
5351
if err != nil {
5452
return uuid.Nil, nil, err
5553
}
56-
return extractSessionID(msg)
54+
sessionID, payload, err := extractSessionID(msg)
55+
if err != nil {
56+
return uuid.Nil, nil, err
57+
}
58+
dm.logger.Debug().Str("sessionID", sessionID.String()).Int("bytes", len(payload)).Msg("Received datagram from edge")
59+
return sessionID, payload, nil
5760
}
5861

5962
// Maximum application payload to send to / receive from QUIC datagram frame

quic/datagram_test.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414

1515
"github.com/google/uuid"
1616
"github.com/lucas-clemente/quic-go"
17+
"github.com/rs/zerolog"
1718
"github.com/stretchr/testify/require"
1819
"golang.org/x/sync/errgroup"
1920
)
@@ -71,7 +72,8 @@ func TestMaxDatagramPayload(t *testing.T) {
7172
return err
7273
}
7374

74-
muxer, err := NewDatagramMuxer(quicSession)
75+
logger := zerolog.Nop()
76+
muxer, err := NewDatagramMuxer(quicSession, &logger)
7577
if err != nil {
7678
return err
7779
}
@@ -96,7 +98,8 @@ func TestMaxDatagramPayload(t *testing.T) {
9698
quicSession, err := quic.DialAddrEarly(quicListener.Addr().String(), tlsClientConfig, quicConfig)
9799
require.NoError(t, err)
98100

99-
muxer, err := NewDatagramMuxer(quicSession)
101+
logger := zerolog.Nop()
102+
muxer, err := NewDatagramMuxer(quicSession, &logger)
100103
if err != nil {
101104
return err
102105
}

0 commit comments

Comments
 (0)