laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/30200 )
Change subject: firmware/sniffer: Enable interrupts for overrun/parity/frame errors
......................................................................
firmware/sniffer: Enable interrupts for overrun/parity/frame errors
We so far didn't have interrupts enabled for those, and just caught
them "by accident" if a byte was received or if a timeout happened.
Let's explicitly enable those interrupts so we also catch those
conditions by themselves.
Change-Id: Ia27f537706b9a6252dd18175545c6f27a7d17d0e
---
M firmware/libcommon/source/sniffer.c
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/00/30200/1
diff --git a/firmware/libcommon/source/sniffer.c b/firmware/libcommon/source/sniffer.c
index 35de58f..948eee8 100644
--- a/firmware/libcommon/source/sniffer.c
+++ b/firmware/libcommon/source/sniffer.c
@@ -918,7 +918,7 @@
* Initialization routine
*-----------------------------------------------------------------------------*/
-#define SNIFFER_IER (US_IER_RXRDY | US_IER_TIMEOUT)
+#define SNIFFER_IER (US_IER_RXRDY | US_IER_TIMEOUT | US_IER_OVRE | US_IER_FRAME | US_IER_PARE)
/* Called during USB enumeration after device is enumerated by host */
void Sniffer_configure(void)
--
To view, visit https://gerrit.osmocom.org/c/simtrace2/+/30200
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: simtrace2
Gerrit-Branch: master
Gerrit-Change-Id: Ia27f537706b9a6252dd18175545c6f27a7d17d0e
Gerrit-Change-Number: 30200
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge(a)osmocom.org>
Gerrit-MessageType: newchange
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/30198 )
Change subject: firmware/sniffer: Handle WT timeouts via ring-buffer
......................................................................
firmware/sniffer: Handle WT timeouts via ring-buffer
Before this patch, all UART characters went through a fifo/ringbuffer
of depth 512, while events like timeout were delivered directly via
a global flags variable from ISR to main code. This means that one or
more correct/complete TPDUs could theoretically still be in the FIFO,
but the "Fast path" of the timeout handling is pre-empting that and
messing with the state machines.
All events from the UART should be delivered via the ring-buffer to make
sure they arrive in order at the main function.
The old "report timeout via change flags in separate USB message" code
is left in place. On the USB protocol we should keep it for
compatibility. Internally we should probably also migrate that over
to the new ring-buffer method in a second step.
Change-Id: I4434c6fcd59d1a425e9ded734bbc8b0411a0a0d8
---
M firmware/libcommon/source/sniffer.c
1 file changed, 73 insertions(+), 66 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/98/30198/1
diff --git a/firmware/libcommon/source/sniffer.c b/firmware/libcommon/source/sniffer.c
index e87e9b8..75c140c 100644
--- a/firmware/libcommon/source/sniffer.c
+++ b/firmware/libcommon/source/sniffer.c
@@ -1,6 +1,6 @@
/* SIMtrace 2 sniffer mode
*
- * (C) 2016-2017 by Harald Welte <hwelte(a)hmw-consulting.de>
+ * (C) 2016-2022 by Harald Welte <hwelte(a)hmw-consulting.de>
* (C) 2018 by sysmocom -s.f.m.c. GmbH, Author: Kevin Redon <kredon(a)sysmocom.de>
*
* This program is free software; you can redistribute it and/or modify
@@ -115,6 +115,8 @@
#define RBUF16_F_OVERRUN 0x0100
#define RBUF16_F_FRAMING 0x0200
#define RBUF16_F_PARITY 0x0400
+#define RBUF16_F_TIMEOUT_WT 0x0800
+#define RBUF16_F_DATA_BYTE 0x8000
/*------------------------------------------------------------------------------
* Internal variables
@@ -825,13 +827,11 @@
uint32_t csr = sniff_usart.base->US_CSR;
uint16_t byte = 0;
- bool byte_received = false;
/* Verify if character has been received */
if (csr & US_CSR_RXRDY) {
- byte_received = true;
/* Read communication data byte between phone and SIM */
- byte = sniff_usart.base->US_RHR;
+ byte = RBUF16_F_DATA_BYTE | (sniff_usart.base->US_RHR & 0xff);
/* Reset WT timer */
wt_remaining = g_wt;
}
@@ -847,15 +847,11 @@
if (csr & (US_CSR_OVRE|US_CSR_FRAME|US_CSR_PARE))
sniff_usart.base->US_CR |= US_CR_RSTSTA;
- /* Store sniffed data (or error flags, or both) into buffer */
- if (byte_received || byte) {
- if (rbuf16_write(&sniff_buffer, byte) != 0)
- TRACE_ERROR("USART buffer full\n\r");
- }
-
/* Verify it WT timeout occurred, to detect unresponsive card */
if (csr & US_CSR_TIMEOUT) {
if (wt_remaining <= (sniff_usart.base->US_RTOR & 0xffff)) {
+ /* ensure the timeout is enqueued in the ring-buffer */
+ byte |= RBUF16_F_TIMEOUT_WT;
/* Just set the flag and let the main loop handle it */
change_flags |= SNIFF_CHANGE_FLAG_TIMEOUT_WT;
/* Reset timeout value */
@@ -875,6 +871,12 @@
sniff_usart.base->US_CR |= US_CR_RETTO;
}
}
+
+ /* Store sniffed data (or error flags, or both) into buffer */
+ if (byte) {
+ if (rbuf16_write(&sniff_buffer, byte) != 0)
+ TRACE_ERROR("USART buffer full\n\r");
+ }
}
/** PIO interrupt service routine to checks if the card reset line has changed
@@ -1023,43 +1025,72 @@
/* Handle sniffed data */
if (!rbuf16_is_empty(&sniff_buffer)) { /* use if instead of while to let the main loop restart the watchdog */
uint16_t entry = rbuf16_read(&sniff_buffer);
- uint8_t byte = entry & 0xff;
- /* Convert convention if required */
- if (convention_convert) {
- byte = convention_convert_lut[byte];
- }
- //TRACE_ERROR_WP(">%02x", byte);
- switch (iso_state) { /* Handle byte depending on state */
- case ISO7816_S_RESET: /* During reset we shouldn't receive any data */
- break;
- case ISO7816_S_WAIT_ATR: /* After a reset we expect the ATR */
- change_state(ISO7816_S_IN_ATR); /* go to next state */
- case ISO7816_S_IN_ATR: /* More ATR data incoming */
- process_byte_atr(byte);
- break;
- case ISO7816_S_WAIT_TPDU: /* After the ATR we expect TPDU or PPS data */
- case ISO7816_S_WAIT_PPS_RSP:
- if (0xff == byte) {
- if (ISO7816_S_WAIT_PPS_RSP == iso_state) {
- change_state(ISO7816_S_IN_PPS_RSP); /* Go to PPS state */
- } else {
- change_state(ISO7816_S_IN_PPS_REQ); /* Go to PPS state */
+
+ if (entry & RBUF16_F_DATA_BYTE) {
+ uint8_t byte = entry & 0xff;
+ /* Convert convention if required */
+ if (convention_convert) {
+ byte = convention_convert_lut[byte];
+ }
+
+ //TRACE_ERROR_WP(">%02x", byte);
+ switch (iso_state) { /* Handle byte depending on state */
+ case ISO7816_S_RESET: /* During reset we shouldn't receive any data */
+ break;
+ case ISO7816_S_WAIT_ATR: /* After a reset we expect the ATR */
+ change_state(ISO7816_S_IN_ATR); /* go to next state */
+ case ISO7816_S_IN_ATR: /* More ATR data incoming */
+ process_byte_atr(byte);
+ break;
+ case ISO7816_S_WAIT_TPDU: /* After the ATR we expect TPDU or PPS data */
+ case ISO7816_S_WAIT_PPS_RSP:
+ if (0xff == byte) {
+ if (ISO7816_S_WAIT_PPS_RSP == iso_state) {
+ change_state(ISO7816_S_IN_PPS_RSP); /* Go to PPS state */
+ } else {
+ change_state(ISO7816_S_IN_PPS_REQ); /* Go to PPS state */
+ }
+ process_byte_pps(byte);
+ break;
}
+ case ISO7816_S_IN_TPDU: /* More TPDU data incoming */
+ if (ISO7816_S_WAIT_TPDU == iso_state) {
+ change_state(ISO7816_S_IN_TPDU);
+ }
+ process_byte_tpdu(byte);
+ break;
+ case ISO7816_S_IN_PPS_REQ:
+ case ISO7816_S_IN_PPS_RSP:
process_byte_pps(byte);
break;
+ default:
+ TRACE_ERROR("Data received in unknown state %u\n\r", iso_state);
}
- case ISO7816_S_IN_TPDU: /* More TPDU data incoming */
- if (ISO7816_S_WAIT_TPDU == iso_state) {
- change_state(ISO7816_S_IN_TPDU);
+ }
+
+ /* Use timeout to detect interrupted data transmission */
+ if (entry & RBUF16_F_TIMEOUT_WT) {
+ TRACE_ERROR("USART TIMEOUT Error\n\r");
+ switch (iso_state) {
+ case ISO7816_S_IN_ATR:
+ led_blink(LED_RED, BLINK_2F_O); /* indicate error to user */
+ usb_send_atr(SNIFF_DATA_FLAG_ERROR_INCOMPLETE); /* send incomplete ATR to host software using USB */
+ change_state(ISO7816_S_WAIT_ATR);
+ break;
+ case ISO7816_S_IN_TPDU:
+ led_blink(LED_RED, BLINK_2F_O); /* indicate error to user */
+ usb_send_tpdu(SNIFF_DATA_FLAG_ERROR_INCOMPLETE); /* send incomplete PPS to host software using USB */
+ change_state(ISO7816_S_WAIT_TPDU);
+ break;
+ case ISO7816_S_IN_PPS_REQ:
+ case ISO7816_S_IN_PPS_RSP:
+ led_blink(LED_RED, BLINK_2F_O); /* indicate error to user */
+ usb_send_pps(SNIFF_DATA_FLAG_ERROR_INCOMPLETE); /* send incomplete TPDU to host software using USB */
+ change_state(ISO7816_S_WAIT_TPDU);
+ break;
+ default:
+ break;
}
- process_byte_tpdu(byte);
- break;
- case ISO7816_S_IN_PPS_REQ:
- case ISO7816_S_IN_PPS_RSP:
- process_byte_pps(byte);
- break;
- default:
- TRACE_ERROR("Data received in unknown state %u\n\r", iso_state);
}
if (entry & RBUF16_F_PARITY)
@@ -1101,30 +1132,6 @@
printf("reset de-asserted\n\r");
}
}
- if (change_flags & SNIFF_CHANGE_FLAG_TIMEOUT_WT) {
- /* Use timeout to detect interrupted data transmission */
- switch (iso_state) {
- case ISO7816_S_IN_ATR:
- led_blink(LED_RED, BLINK_2F_O); /* indicate error to user */
- usb_send_atr(SNIFF_DATA_FLAG_ERROR_INCOMPLETE); /* send incomplete ATR to host software using USB */
- change_state(ISO7816_S_WAIT_ATR);
- break;
- case ISO7816_S_IN_TPDU:
- led_blink(LED_RED, BLINK_2F_O); /* indicate error to user */
- usb_send_tpdu(SNIFF_DATA_FLAG_ERROR_INCOMPLETE); /* send incomplete PPS to host software using USB */
- change_state(ISO7816_S_WAIT_TPDU);
- break;
- case ISO7816_S_IN_PPS_REQ:
- case ISO7816_S_IN_PPS_RSP:
- led_blink(LED_RED, BLINK_2F_O); /* indicate error to user */
- usb_send_pps(SNIFF_DATA_FLAG_ERROR_INCOMPLETE); /* send incomplete TPDU to host software using USB */
- change_state(ISO7816_S_WAIT_TPDU);
- break;
- default:
- change_flags &= ~SNIFF_CHANGE_FLAG_TIMEOUT_WT; /* We don't care about the timeout is all other cases */
- break;
- }
- }
if (change_flags) {
usb_send_change(change_flags); /* send timeout to host software over USB */
change_flags = 0; /* Reset flags */
--
To view, visit https://gerrit.osmocom.org/c/simtrace2/+/30198
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: simtrace2
Gerrit-Branch: master
Gerrit-Change-Id: I4434c6fcd59d1a425e9ded734bbc8b0411a0a0d8
Gerrit-Change-Number: 30198
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge(a)osmocom.org>
Gerrit-MessageType: newchange
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/30199 )
Change subject: firmware/sniffer: introduce #define for interrupt enable flags
......................................................................
firmware/sniffer: introduce #define for interrupt enable flags
Change-Id: Id4bc720a1db31b4433ff7b10d7a57d0ddb7d7180
---
M firmware/libcommon/source/sniffer.c
1 file changed, 4 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/99/30199/1
diff --git a/firmware/libcommon/source/sniffer.c b/firmware/libcommon/source/sniffer.c
index 75c140c..35de58f 100644
--- a/firmware/libcommon/source/sniffer.c
+++ b/firmware/libcommon/source/sniffer.c
@@ -918,6 +918,8 @@
* Initialization routine
*-----------------------------------------------------------------------------*/
+#define SNIFFER_IER (US_IER_RXRDY | US_IER_TIMEOUT)
+
/* Called during USB enumeration after device is enumerated by host */
void Sniffer_configure(void)
{
@@ -929,7 +931,7 @@
{
TRACE_INFO("Sniffer exit\n\r");
/* Disable USART */
- USART_DisableIt(sniff_usart.base, US_IER_RXRDY | US_IER_TIMEOUT);
+ USART_DisableIt(sniff_usart.base, SNIFFER_IER);
/* NOTE: don't forget to set the IRQ according to the USART peripheral used */
NVIC_DisableIRQ(IRQ_USART_SIM);
USART_SetReceiverEnabled(sniff_usart.base, 0);
@@ -965,7 +967,7 @@
/* Enable Receiver time-out to detect waiting time (WT) time-out (e.g. unresponsive cards) */
sniff_usart.base->US_RTOR = g_wt;
/* Enable interrupt to indicate when data has been received or timeout occurred */
- USART_EnableIt(sniff_usart.base, US_IER_RXRDY | US_IER_TIMEOUT);
+ USART_EnableIt(sniff_usart.base, SNIFFER_IER);
/* Set USB priority lower than USART to not miss sniffing data (both at 0 per default) */
if (NVIC_GetPriority(IRQ_USART_SIM) >= NVIC_GetPriority(UDP_IRQn)) {
NVIC_SetPriority(UDP_IRQn, NVIC_GetPriority(IRQ_USART_SIM) + 2);
--
To view, visit https://gerrit.osmocom.org/c/simtrace2/+/30199
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: simtrace2
Gerrit-Branch: master
Gerrit-Change-Id: Id4bc720a1db31b4433ff7b10d7a57d0ddb7d7180
Gerrit-Change-Number: 30199
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge(a)osmocom.org>
Gerrit-MessageType: newchange
Attention is currently required from: pespin.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-netif/+/30194
to look at the new patch set (#3).
Change subject: osmux: Use better rationale when limiting amount of lost & forged RTP incoming packets
......................................................................
osmux: Use better rationale when limiting amount of lost & forged RTP incoming packets
Related: SYS#6161
Change-Id: I4ea700dbbf469498befc939a844324259bbe332a
---
M src/osmux_input.c
M tests/osmux/osmux_test.ok
2 files changed, 110 insertions(+), 104 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/94/30194/3
--
To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/30194
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I4ea700dbbf469498befc939a844324259bbe332a
Gerrit-Change-Number: 30194
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: pespin.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-netif/+/30196
to look at the new patch set (#3).
Change subject: osmux: Set M bit in osmuxhdr if seqnum hole found encoding RTP pkts
......................................................................
osmux: Set M bit in osmuxhdr if seqnum hole found encoding RTP pkts
So far only small intra-batch seqnum jumps are filled in with forged RTP
packets when storing the incoming RTP packets.
Under some conditions, holes may still exist in the queue of RTP packets
for a stream:
* Seqnum detected when first incoming RTP in batch is queued (this can
be improved in the future).
* Big seqnum jumps > batch_factor or simply filling out of bounds for currently
enqueued batch.
Specially the second case can come from long network dropouts, or simply
due to a bug in the RTP being feed to osmux layer (be it from local code
or peer). In that case (long jumps) we don't want to generate tons of
packets filling in several entire batches (potentially incredibly big
amount of batches).
Instead, in these scenarios, simply let the osmux peer know there was a
jump by setting the M bit on the next osmux header for that circuit
after the seq jump has been detected.
Related: SYS#6161
Change-Id: I05b1eae400cb60d1f4e927f853619d5ff470163f
---
M src/osmux_input.c
M tests/osmux/osmux_input_test.c
M tests/osmux/osmux_input_test.ok
M tests/osmux/osmux_test.c
M tests/osmux/osmux_test.ok
5 files changed, 155 insertions(+), 141 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/96/30196/3
--
To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/30196
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I05b1eae400cb60d1f4e927f853619d5ff470163f
Gerrit-Change-Number: 30196
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-netif/+/30197
to look at the new patch set (#3).
Change subject: osmux: Support recreating lost RTP packets at start of the batch
......................................................................
osmux: Support recreating lost RTP packets at start of the batch
Previously, if RTP jumps were detected in the incoming RTP stream and
osmux state for that circuit was to start the next batch, the hole would
not been filled during queueing time and instead the encoder would have
set th M bit in the osmuxhdr to announce a sync point.
For small holes (eg less than the batch factor) it makes sense to start
filling the batch with crafted RTP packets in order to avoid the encoder
later on setting the M bit and hence avoid the peer receiving the Osmux
frame having to start a new syncrhonization point.
Related: SYS#6161
Change-Id: I9596501adf5b7b91983618c92c7b1792ee9461a3
---
M src/osmux_input.c
M tests/osmux/osmux_test.c
M tests/osmux/osmux_test.ok
3 files changed, 626 insertions(+), 426 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/97/30197/3
--
To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/30197
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I9596501adf5b7b91983618c92c7b1792ee9461a3
Gerrit-Change-Number: 30197
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-MessageType: newpatchset
Attention is currently required from: pespin.
Jenkins Builder has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/30196 )
Change subject: osmux: Set M bit in osmuxhdr if seqnum hole found encoding RTP pkts
......................................................................
Patch Set 2: Verified-1
(2 comments)
File tests/osmux/osmux_test.c:
Robot Comment from checkpatch (run ID jenkins-gerrit-lint-1081):
https://gerrit.osmocom.org/c/libosmo-netif/+/30196/comment/a26efe1c_8336cc45
PS2, Line 206: if (k==0 || k==1)
spaces required around that '==' (ctx:VxV)
Robot Comment from checkpatch (run ID jenkins-gerrit-lint-1081):
https://gerrit.osmocom.org/c/libosmo-netif/+/30196/comment/f53a93a3_6be92663
PS2, Line 206: if (k==0 || k==1)
spaces required around that '==' (ctx:VxV)
--
To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/30196
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I05b1eae400cb60d1f4e927f853619d5ff470163f
Gerrit-Change-Number: 30196
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Wed, 16 Nov 2022 18:52:05 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
Attention is currently required from: pespin.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-netif/+/30191
to look at the new patch set (#2).
Change subject: tests/osmux: Test big seqnum holes (>batch_factor) in incoming RTP stream
......................................................................
tests/osmux: Test big seqnum holes (>batch_factor) in incoming RTP stream
This test shows that there's 2 bugs in the osmux_input code:
* It should be transmitting 2 osmux frames instead of 1
* Once it is fixed to transmitt 2 osmux frames, it should set the M bit of the 2nd
generated osmux header after the seqnum jump in order to announce a jump in the
stream to the peer receiving osmux.
The bugs are fixed in follow-up patches.
Related: SYS#6161
Change-Id: I521c2e97a739e8a824b16f06ec2a578333388247
---
M tests/osmux/osmux_input_test.c
M tests/osmux/osmux_input_test.ok
2 files changed, 230 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/91/30191/2
--
To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/30191
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I521c2e97a739e8a824b16f06ec2a578333388247
Gerrit-Change-Number: 30191
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: pespin.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-netif/+/30194
to look at the new patch set (#2).
Change subject: osmux: Use better rationale when limiting amount of lost & forged RTP incoming packets
......................................................................
osmux: Use better rationale when limiting amount of lost & forged RTP incoming packets
Related: SYS#6161
Change-Id: I4ea700dbbf469498befc939a844324259bbe332a
---
M src/osmux_input.c
M tests/osmux/osmux_test.ok
2 files changed, 110 insertions(+), 104 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/94/30194/2
--
To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/30194
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I4ea700dbbf469498befc939a844324259bbe332a
Gerrit-Change-Number: 30194
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newpatchset