Attention is currently required from: laforge, pespin, tnt.
manawyrm has posted comments on this change by manawyrm. ( https://gerrit.osmocom.org/c/osmo-e1d/+/43643?usp=email )
Change subject: octoi: rework frame_rifo logic to decompress frames on the output side
......................................................................
Patch Set 7:
(4 comments)
Patchset:
PS7:
Another code-review, please? 😊
File src/octoi/e1oip.c:
https://gerrit.osmocom.org/c/osmo-e1d/+/43643/comment/f6970435_506b6d95?usp… :
PS5, Line 263: memcpy(frame_buf, iline->e1t.last_frame, BYTES_PER_FRAME);
> It's not zeroed, it copies the last frame AFAICT
Acknowledged
File src/octoi/frame_rifo.c:
https://gerrit.osmocom.org/c/osmo-e1d/+/43643/comment/6db99812_1362e2ac?usp… :
PS5, Line 147: memcpy(out, rifo->last_out, BYTES_PER_FRAME);
> This doesn't really do anything since AFAICT the code further down will fill with 0xff if rc == -2
Acknowledged
File src/octoi/octoi.c:
https://gerrit.osmocom.org/c/osmo-e1d/+/43643/comment/c0051b26_abedddd8?usp… :
PS5, Line 140: /* substitute with last received frame */
> "subsituted in frame_rifo_out()" looks more clear yes.
Acknowledged
--
To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/43643?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-e1d
Gerrit-Branch: master
Gerrit-Change-Id: I66af4f01ebb38ca1bdd8ffbc8135776322941230
Gerrit-Change-Number: 43643
Gerrit-PatchSet: 7
Gerrit-Owner: manawyrm <osmocom.account(a)tbspace.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: tnt <tnt(a)246tNt.com>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: tnt <tnt(a)246tNt.com>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 15 Sep 2026 16:36:27 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: manawyrm <osmocom.account(a)tbspace.de>
Comment-In-Reply-To: tnt <tnt(a)246tNt.com>
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Attention is currently required from: laforge, manawyrm, pespin, tnt.
Hello Jenkins Builder, laforge, pespin, tnt,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-e1d/+/43643?usp=email
to look at the new patch set (#7).
The following approvals got outdated and were removed:
Verified-1 by Jenkins Builder
Change subject: octoi: rework frame_rifo logic to decompress frames on the output side
......................................................................
octoi: rework frame_rifo logic to decompress frames on the output side
The previous code tried to decompress frames against the last received
frame regardless of the ordering (even when the frames got re-ordered
by the network) and also when a frame didn't even arrive yet
(rendering the jitter buffer almost useless).
This commit stores the compressed frame and the timeslot mask in the
RIFO and only tries to decompress the frames in the RIFO pop logic
(when we had time to receive the other frames before it).
The rifo->last_in_fn logic would also reset the counter back to an
older frame even when a frame with a higher number was already
received (fixed now).
Change-Id: I66af4f01ebb38ca1bdd8ffbc8135776322941230
---
M src/octoi/e1oip.c
M src/octoi/e1oip.h
M src/octoi/frame_rifo.c
M src/octoi/frame_rifo.h
M src/octoi/octoi.c
M tests/rifo/rifo_test.c
M tests/rifo/rifo_test.ok
7 files changed, 191 insertions(+), 37 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/43/43643/7
--
To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/43643?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-e1d
Gerrit-Branch: master
Gerrit-Change-Id: I66af4f01ebb38ca1bdd8ffbc8135776322941230
Gerrit-Change-Number: 43643
Gerrit-PatchSet: 7
Gerrit-Owner: manawyrm <osmocom.account(a)tbspace.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: tnt <tnt(a)246tNt.com>
Gerrit-Attention: manawyrm <osmocom.account(a)tbspace.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: tnt <tnt(a)246tNt.com>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Attention is currently required from: laforge, manawyrm, pespin, tnt.
Hello Jenkins Builder, laforge, pespin, tnt,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-e1d/+/43643?usp=email
to look at the new patch set (#6).
The following approvals got outdated and were removed:
Code-Review+1 by pespin, Code-Review+1 by tnt, Verified+1 by Jenkins Builder
Change subject: octoi: rework frame_rifo logic to decompress frames on the output side
......................................................................
octoi: rework frame_rifo logic to decompress frames on the output side
The previous code tried to decompress frames against the last received
frame regardless of the ordering (even when the frames got re-ordered
by the network) and also when a frame didn't even arrive yet
(rendering the jitter buffer almost useless).
This commit stores the compressed frame and the timeslot mask in the
RIFO and only tries to decompress the frames in the RIFO pop logic
(when we had time to receive the other frames before it).
The rifo->last_in_fn logic would also reset the counter back to an
older frame even when a frame with a higher number was already
received (fixed now).
Change-Id: I66af4f01ebb38ca1bdd8ffbc8135776322941230
---
M src/octoi/e1oip.c
M src/octoi/e1oip.h
M src/octoi/frame_rifo.c
M src/octoi/frame_rifo.h
M src/octoi/octoi.c
M tests/rifo/rifo_test.c
M tests/rifo/rifo_test.ok
7 files changed, 193 insertions(+), 39 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/43/43643/6
--
To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/43643?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-e1d
Gerrit-Branch: master
Gerrit-Change-Id: I66af4f01ebb38ca1bdd8ffbc8135776322941230
Gerrit-Change-Number: 43643
Gerrit-PatchSet: 6
Gerrit-Owner: manawyrm <osmocom.account(a)tbspace.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: tnt <tnt(a)246tNt.com>
Gerrit-Attention: manawyrm <osmocom.account(a)tbspace.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: tnt <tnt(a)246tNt.com>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Attention is currently required from: laforge, manawyrm, tnt.
pespin has posted comments on this change by manawyrm. ( https://gerrit.osmocom.org/c/osmo-e1d/+/43643?usp=email )
Change subject: octoi: rework frame_rifo logic to decompress frames on the output side
......................................................................
Patch Set 5:
(2 comments)
File src/octoi/e1oip.c:
https://gerrit.osmocom.org/c/osmo-e1d/+/43643/comment/0c2c1a76_07371acc?usp… :
PS5, Line 263: memcpy(frame_buf, iline->e1t.last_frame, BYTES_PER_FRAME);
> It's not zeroed, it copies the last frame AFAICT
Ah indeed I was confused by the "= { 0 };" above, I see now it's not zeroing here ;)
File src/octoi/octoi.c:
https://gerrit.osmocom.org/c/osmo-e1d/+/43643/comment/0295aebd_e19c5ffa?usp… :
PS5, Line 140: /* substitute with last received frame */
> That's what the new memcpy() in frame_rifo_out() line 152 is for. […]
"subsituted in frame_rifo_out()" looks more clear yes.
--
To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/43643?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-e1d
Gerrit-Branch: master
Gerrit-Change-Id: I66af4f01ebb38ca1bdd8ffbc8135776322941230
Gerrit-Change-Number: 43643
Gerrit-PatchSet: 5
Gerrit-Owner: manawyrm <osmocom.account(a)tbspace.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: tnt <tnt(a)246tNt.com>
Gerrit-Attention: manawyrm <osmocom.account(a)tbspace.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: tnt <tnt(a)246tNt.com>
Gerrit-Comment-Date: Tue, 15 Sep 2026 16:07:56 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: manawyrm <osmocom.account(a)tbspace.de>
Comment-In-Reply-To: tnt <tnt(a)246tNt.com>
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Attention is currently required from: laforge, pespin.
tnt has posted comments on this change by manawyrm. ( https://gerrit.osmocom.org/c/osmo-e1d/+/43643?usp=email )
Change subject: octoi: rework frame_rifo logic to decompress frames on the output side
......................................................................
Patch Set 5: Code-Review+1
(3 comments)
Patchset:
PS5:
All in all, looks good to me and good fix for the issue.
Comments are really minor.
File src/octoi/e1oip.c:
https://gerrit.osmocom.org/c/osmo-e1d/+/43643/comment/34569e09_ebba21f0?usp… :
PS5, Line 263: memcpy(frame_buf, iline->e1t.last_frame, BYTES_PER_FRAME);
> any reason to do the zeroing further up now?
It's not zeroed, it copies the last frame AFAICT
File src/octoi/frame_rifo.c:
https://gerrit.osmocom.org/c/osmo-e1d/+/43643/comment/7e52ba58_db8fa548?usp… :
PS5, Line 147: memcpy(out, rifo->last_out, BYTES_PER_FRAME);
This doesn't really do anything since AFAICT the code further down will fill with 0xff if rc == -2
--
To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/43643?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-e1d
Gerrit-Branch: master
Gerrit-Change-Id: I66af4f01ebb38ca1bdd8ffbc8135776322941230
Gerrit-Change-Number: 43643
Gerrit-PatchSet: 5
Gerrit-Owner: manawyrm <osmocom.account(a)tbspace.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: tnt <tnt(a)246tNt.com>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 15 Sep 2026 16:04:17 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Attention is currently required from: laforge, pespin.
manawyrm has posted comments on this change by manawyrm. ( https://gerrit.osmocom.org/c/osmo-e1d/+/43643?usp=email )
Change subject: octoi: rework frame_rifo logic to decompress frames on the output side
......................................................................
Patch Set 5:
(3 comments)
Commit Message:
https://gerrit.osmocom.org/c/osmo-e1d/+/43643/comment/dcb1ee3e_0f674ee2?usp… :
PS4, Line 9: The previous code tried to decompress frames against the last received frame regardless of the ordering (even when the frames got re-ordered by the network) and also when a frame didn't even arrive yet (rendering the jitter buffer almost useless).
> cosmetic: the commitlog lines should be wrapped at (ideally) 72 characters
Acknowledged
File src/octoi/e1oip.c:
https://gerrit.osmocom.org/c/osmo-e1d/+/43643/comment/69c13c6a_a06b9c75?usp… :
PS5, Line 263: memcpy(frame_buf, iline->e1t.last_frame, BYTES_PER_FRAME);
> any reason to do the zeroing further up now?
Not quite sure what you're asking. The logic for this has moved over to frame_rifo_out() in frame_rifo.c line 164.
Or are you asking about the stack buffer allocation with the "= { 0 };"?
That's leftover from an old experiment -- as long as the ts_mask is set correctly and the logic is correct, it shouldn't matter at all.
File src/octoi/octoi.c:
https://gerrit.osmocom.org/c/osmo-e1d/+/43643/comment/9b60e3e2_7fac145d?usp… :
PS5, Line 140: /* substitute with last received frame */
> No substitution now afaict?
That's what the new memcpy() in frame_rifo_out() line 152 is for. Maybe the comment should be changed to "substituted"?
--
To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/43643?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-e1d
Gerrit-Branch: master
Gerrit-Change-Id: I66af4f01ebb38ca1bdd8ffbc8135776322941230
Gerrit-Change-Number: 43643
Gerrit-PatchSet: 5
Gerrit-Owner: manawyrm <osmocom.account(a)tbspace.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 15 Sep 2026 16:03:53 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: laforge <laforge(a)osmocom.org>
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>