Skip to content

Commit e131125

Browse files
joliveirinhaipostelnik
authored andcommitted
TUN-6699: Add metric for packet too big dropped
1 parent af6bf5c commit e131125

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

quic/datagram.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@ func (dm *DatagramMuxer) mtu() int {
4646

4747
func (dm *DatagramMuxer) SendToSession(session *packet.Session) error {
4848
if len(session.Payload) > dm.mtu() {
49-
// TODO: TUN-5302 return ICMP packet too big message
50-
// drop packet for now, eventually reply with ICMP for PMTUD
49+
packetTooBigDropped.Inc()
5150
return fmt.Errorf("origin UDP payload has %d bytes, which exceeds transport MTU %d", len(session.Payload), dm.mtu())
5251
}
5352
payloadWithMetadata, err := suffixSessionID(session.ID, session.Payload)

quic/datagramv2.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func NewDatagramMuxerV2(
5858
// demultiplex the payload from multiple datagram sessions
5959
func (dm *DatagramMuxerV2) SendToSession(session *packet.Session) error {
6060
if len(session.Payload) > dm.mtu() {
61-
// TODO: TUN-5302 return ICMP packet too big message
61+
packetTooBigDropped.Inc()
6262
return fmt.Errorf("origin UDP payload has %d bytes, which exceeds transport MTU %d", len(session.Payload), dm.mtu())
6363
}
6464
msgWithID, err := suffixSessionID(session.ID, session.Payload)

quic/metrics.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,13 @@ var (
144144
}
145145
registerClient = sync.Once{}
146146
registerServer = sync.Once{}
147+
148+
packetTooBigDropped = prometheus.NewCounter(prometheus.CounterOpts{
149+
Namespace: namespace,
150+
Subsystem: perspectiveString(logging.PerspectiveClient),
151+
Name: "packet_too_big_dropped",
152+
Help: "Count of packets received from origin that are too big to send to the edge and are dropped as a result",
153+
})
147154
)
148155

149156
// MetricsCollector abstracts the difference between client and server metrics from connTracer
@@ -264,6 +271,7 @@ func newClientCollector(index uint8) MetricsCollector {
264271
clientMetrics.minRTT,
265272
clientMetrics.latestRTT,
266273
clientMetrics.smoothedRTT,
274+
packetTooBigDropped,
267275
)
268276
})
269277
return &clientCollector{

0 commit comments

Comments
 (0)