Projects
osmocom:nightly
osmo-e1d
Log In
Username
Password
File not found: libosmo-netif_1.4.0.57.481f.202407172026.dsc
×
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 220
View file
osmo-e1d.spec
Changed
@@ -14,14 +14,14 @@ # published by the Open Source Initiative. Name: osmo-e1d -Requires: osmocom-nightly = 202301300006 -Version: 0.4.0.24.ad15.202301300006 +Requires: osmocom-nightly = 202301310005 +Version: 0.4.0.25.6325.202301310005 Release: 0 Summary: Osmocom E1 Daemon License: GPL-2.0-or-later Group: Productivity/Telephony/Utilities URL: https://osmocom.org/projects/osmo-e1d/wiki/Wiki -Source: osmo-e1d_0.4.0.24.ad15.202301300006.tar.xz +Source: osmo-e1d_0.4.0.25.6325.202301310005.tar.xz Source1: rpmlintrc BuildRequires: automake >= 1.9 BuildRequires: libtool >= 2 @@ -46,7 +46,7 @@ timeslots on the top side. %package -n libosmo-e1d1 -Requires: osmocom-nightly = 202301300006 +Requires: osmocom-nightly = 202301310005 Summary: Osmocom E1 daemon protocol library License: LGPL-3.0-or-later Group: System/Libraries @@ -55,7 +55,7 @@ Osmocom E1 Daemon Protocol Library. %package -n libosmo-octoi0 -Requires: osmocom-nightly = 202301300006 +Requires: osmocom-nightly = 202301310005 Summary: Library for the Osmocom Community TDMoIP network License: LGPL-3.0-or-later Group: System/Libraries @@ -64,7 +64,7 @@ Library for the Osmocom Community TDMoIP network. %package devel -Requires: osmocom-nightly = 202301300006 +Requires: osmocom-nightly = 202301310005 Summary: Header files for the Osmocom E1 daemon protocol library License: LGPL-3.0-or-later Group: Development/Libraries/C and C++
View file
osmo-e1d_0.4.0.24.ad15.202301300006.dsc -> osmo-e1d_0.4.0.25.6325.202301310005.dsc
Changed
@@ -2,7 +2,7 @@ Source: osmo-e1d Binary: osmo-e1d, libosmo-e1d1, libosmo-e1d-dev, libosmo-octoi0, libosmo-octoi-dev Architecture: any -Version: 0.4.0.24.ad15.202301300006 +Version: 0.4.0.25.6325.202301310005 Maintainer: Harald Welte <laforge@osmocom.org> Homepage: https://projects.osmocom.org/projects/osmo-e1d Standards-Version: 3.9.8 @@ -16,8 +16,8 @@ libosmo-octoi0 deb libs extra arch=any osmo-e1d deb net extra arch=any Checksums-Sha1: - 234631dcb15d279ffdab17059263b6e23a275825 102132 osmo-e1d_0.4.0.24.ad15.202301300006.tar.xz + f664c52699b6169d30333fae08b68624deadba96 102272 osmo-e1d_0.4.0.25.6325.202301310005.tar.xz Checksums-Sha256: - 385c097ec5812825e73491b4f25128ed7476b35dc6fe6f18b9d2c382829da845 102132 osmo-e1d_0.4.0.24.ad15.202301300006.tar.xz + bd180d4dc54c77a46ff40ea6de271fb84488e3aff924ee3d8a4b247b0ea6d203 102272 osmo-e1d_0.4.0.25.6325.202301310005.tar.xz Files: - c4cf34fc232040ff3bcb69d8a0f8a728 102132 osmo-e1d_0.4.0.24.ad15.202301300006.tar.xz + bf5335b3e535ed081216e94465e9790c 102272 osmo-e1d_0.4.0.25.6325.202301310005.tar.xz
View file
osmo-e1d_0.4.0.24.ad15.202301300006.tar.xz/.tarball-version -> osmo-e1d_0.4.0.25.6325.202301310005.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -0.4.0.24-ad15.202301300006 +0.4.0.25-6325.202301310005
View file
osmo-e1d_0.4.0.24.ad15.202301300006.tar.xz/contrib/osmo-e1d.spec.in -> osmo-e1d_0.4.0.25.6325.202301310005.tar.xz/contrib/osmo-e1d.spec.in
Changed
@@ -14,7 +14,7 @@ # published by the Open Source Initiative. Name: osmo-e1d -Requires: osmocom-nightly = 202301300006 +Requires: osmocom-nightly = 202301310005 Version: @VERSION@ Release: 0 Summary: Osmocom E1 Daemon @@ -45,7 +45,7 @@ timeslots on the top side. %package -n libosmo-e1d1 -Requires: osmocom-nightly = 202301300006 +Requires: osmocom-nightly = 202301310005 Summary: Osmocom E1 daemon protocol library License: LGPL-3.0-or-later Group: System/Libraries @@ -54,7 +54,7 @@ Osmocom E1 Daemon Protocol Library. %package -n libosmo-octoi0 -Requires: osmocom-nightly = 202301300006 +Requires: osmocom-nightly = 202301310005 Summary: Library for the Osmocom Community TDMoIP network License: LGPL-3.0-or-later Group: System/Libraries @@ -63,7 +63,7 @@ Library for the Osmocom Community TDMoIP network. %package devel -Requires: osmocom-nightly = 202301300006 +Requires: osmocom-nightly = 202301310005 Summary: Header files for the Osmocom E1 daemon protocol library License: LGPL-3.0-or-later Group: Development/Libraries/C and C++
View file
osmo-e1d_0.4.0.24.ad15.202301300006.tar.xz/debian/changelog -> osmo-e1d_0.4.0.25.6325.202301310005.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -osmo-e1d (0.4.0.24.ad15.202301300006) unstable; urgency=medium +osmo-e1d (0.4.0.25.6325.202301310005) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom nightly feed - -- Osmocom OBS scripts <info@osmocom.org> Mon, 30 Jan 2023 00:07:19 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Tue, 31 Jan 2023 00:06:30 +0000 osmo-e1d (0.4.0) unstable; urgency=medium
View file
osmo-e1d_0.4.0.24.ad15.202301300006.tar.xz/debian/control -> osmo-e1d_0.4.0.25.6325.202301310005.tar.xz/debian/control
Changed
@@ -21,14 +21,14 @@ Package: osmo-e1d Architecture: any Multi-Arch: foreign -Depends: osmocom-nightly (= 202301300006), ${misc:Depends}, ${shlibs:Depends} +Depends: osmocom-nightly (= 202301310005), ${misc:Depends}, ${shlibs:Depends} Description: osmo-e1d: Osmocom's E1 interface daemon Package: libosmo-e1d1 Section: libs Architecture: any Multi-Arch: same -Depends: osmocom-nightly (= 202301300006), ${misc:Depends}, ${shlibs:Depends} +Depends: osmocom-nightly (= 202301310005), ${misc:Depends}, ${shlibs:Depends} Pre-Depends: ${misc:Pre-Depends} Description: Client library for talking to the Osmocom E1 interface daemon osmo-e1d. @@ -36,7 +36,7 @@ Section: libdevel Architecture: any Multi-Arch: same -Depends: osmocom-nightly (= 202301300006), ${misc:Depends}, ${shlibs:Depends}, +Depends: osmocom-nightly (= 202301310005), ${misc:Depends}, ${shlibs:Depends}, libosmo-e1d1 (= ${binary:Version}), libosmocore-dev, Description: Development headers for the osmo-e1d library. @@ -45,7 +45,7 @@ Section: libs Architecture: any Multi-Arch: same -Depends: osmocom-nightly (= 202301300006), ${misc:Depends}, ${shlibs:Depends} +Depends: osmocom-nightly (= 202301310005), ${misc:Depends}, ${shlibs:Depends} Pre-Depends: ${misc:Pre-Depends} Description: Library for the Osmocom Community TDMoIP network. @@ -53,7 +53,7 @@ Section: libdevel Architecture: any Multi-Arch: same -Depends: osmocom-nightly (= 202301300006), ${misc:Depends}, ${shlibs:Depends}, +Depends: osmocom-nightly (= 202301310005), ${misc:Depends}, ${shlibs:Depends}, libosmo-octoi0 (= ${binary:Version}), libosmocore-dev, Description: Development headers for the Osmocom Community TDMoIP library.
View file
osmo-e1d_0.4.0.24.ad15.202301300006.tar.xz/src/octoi/frame_fifo.h -> osmo-e1d_0.4.0.25.6325.202301310005.tar.xz/src/octoi/frame_fifo.h
Changed
@@ -4,7 +4,7 @@ #include <stddef.h> #define BYTES_PER_FRAME 32 -#define FRAMES_PER_FIFO 800 +#define FRAMES_PER_FIFO 1792 struct frame_fifo { uint8_t *next_in; /* where to write next input into FIFO */
View file
osmo-e1d_0.4.0.24.ad15.202301300006.tar.xz/tests/rifo/rifo_test.c -> osmo-e1d_0.4.0.25.6325.202301310005.tar.xz/tests/rifo/rifo_test.c
Changed
@@ -11,6 +11,16 @@ static void *g_e1d_ctx; static uint32_t init_next_out_fn; +#define FN_ABS_TO_REL(fn) ((int) (((int64_t) (fn)) - ((int64_t) init_next_out_fn))) +#define ABS_DECISION(depth) (((long long int) ((depth))) <= \ + ((long long int) (FRAMES_PER_FIFO / 2))) +#define DEPTH_ABS_TO_REL(depth) ((ABS_DECISION((depth))) ? ((int) (depth)) : \ + (((int) (depth)) - (FRAMES_PER_FIFO - 1))) +#define ABS_DEPTH_STR(depth) ((ABS_DECISION((depth))) ? ("") : \ + ("FRAMES_PER_FIFO - 1 + ")) +#define ABS_DEPTH_PRINT(depth) ABS_DEPTH_STR((depth)), DEPTH_ABS_TO_REL((depth)) +#define FN_PRINT(fn) ABS_DEPTH_PRINT(FN_ABS_TO_REL((fn))) + static void rifo_init(struct frame_rifo *rifo) { frame_rifo_init(rifo); @@ -21,9 +31,10 @@ static void rifo_in(struct frame_rifo *rifo, uint8_t *frame, uint32_t fn) { int rc = frame_rifo_in(rifo, frame, fn); - printf("RIFO_IN(%s, %u)=%d depth=%u, frames=%u\n", - osmo_hexdump_nospc(frame, BYTES_PER_FRAME), fn, rc, - frame_rifo_depth(rifo), frame_rifo_frames(rifo)); + unsigned int depth = frame_rifo_depth(rifo); + printf("RIFO_IN(%s, start fn + %s%d)=%d depth=%s%d, frames=%u\n", + osmo_hexdump_nospc(frame, BYTES_PER_FRAME), FN_PRINT(fn), rc, + ABS_DEPTH_PRINT(depth), frame_rifo_frames(rifo)); } static int rifo_out(struct frame_rifo *rifo, uint8_t *out) @@ -108,17 +119,18 @@ printf("\nTEST: %s, starting at FN: %u\n", __func__, init_next_out_fn); - // Put 10 frames at absolute frame numbers 850-860 - // (to get outside of the 800 frame buffer) + // Put 10 frames at absolute frame numbers FRAMES_PER_FIFO+50 + // to FRAMES_PER_FIFO+60 (to get outside of the + // FRAMES_PER_FIFO frame buffer) const uint8_t in = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; for (int i = 0; i < sizeof(in); i++) { uint8_t frame32; memset(frame, ini, sizeof(frame)); - rifo_in(&rifo, frame, init_next_out_fn + ini + 850); + rifo_in(&rifo, frame, init_next_out_fn + ini + FRAMES_PER_FIFO + 50); } - // Skip the first 850 frames - for (int i = 0; i < 850; i++) { + // Skip the first FRAMES_PER_FIFO + 50 frames + for (int i = 0; i < FRAMES_PER_FIFO + 50; i++) { uint8_t frame32; memset(frame, 0xff, sizeof(frame)); // Note: frame_rifo_out instead of rifo_out @@ -147,19 +159,20 @@ frame_rifo_in(&rifo, frame, init_next_out_fn); frame_rifo_out(&rifo, frame); - // Put 11 frames at absolute frame numbers 791-801 + // Put 11 frames at absolute frame numbers FRAMES_PER_FIFO - + // 10 + 1 to FRAMES_PER_FIFO + 1 const uint8_t in = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int i = 0; i < sizeof(in); i++) { memset(frame, ini, sizeof(frame)); - rifo_in(&rifo, frame, init_next_out_fn + ini + 791); + rifo_in(&rifo, frame, init_next_out_fn + ini + FRAMES_PER_FIFO - 10 + 1); } // Add frame at start offset memset(frame, 0xa5, sizeof(frame)); rifo_in(&rifo, frame, init_next_out_fn); - // Skip the first 790 frames - for (int i = 0; i < 790; i++) { + // Skip the first FRAMES_PER_FIFO - 10 frames + for (int i = 0; i < FRAMES_PER_FIFO - 10; i++) { memset(frame, 0xff, sizeof(frame)); // Note: frame_rifo_out instead of rifo_out // (just to ignore the output)
View file
osmo-e1d_0.4.0.24.ad15.202301300006.tar.xz/tests/rifo/rifo_test.ok -> osmo-e1d_0.4.0.25.6325.202301310005.tar.xz/tests/rifo/rifo_test.ok
Changed
@@ -1,10 +1,10 @@ TEST: missing_frames, starting at FN: 0 -RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 0)=0 depth=1, frames=1 -RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 2)=0 depth=3, frames=2 -RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 4)=0 depth=5, frames=3 -RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 6)=0 depth=7, frames=4 -RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 8)=0 depth=9, frames=5 +RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + 0)=0 depth=1, frames=1 +RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + 2)=0 depth=3, frames=2 +RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + 4)=0 depth=5, frames=3 +RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + 6)=0 depth=7, frames=4 +RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + 8)=0 depth=9, frames=5 RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 depth=8, frames=4 RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 depth=7, frames=4 RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 depth=6, frames=3 @@ -17,11 +17,11 @@ RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 depth=0, frames=0 TEST: missing_frames, starting at FN: 0 -RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 1)=0 depth=2, frames=1 -RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 3)=0 depth=4, frames=2 -RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 5)=0 depth=6, frames=3 -RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 7)=0 depth=8, frames=4 -RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 9)=0 depth=10, frames=5 +RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + 1)=0 depth=2, frames=1 +RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + 3)=0 depth=4, frames=2 +RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + 5)=0 depth=6, frames=3 +RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + 7)=0 depth=8, frames=4 +RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + 9)=0 depth=10, frames=5 RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 depth=9, frames=5 RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 depth=8, frames=4 RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 depth=7, frames=4 @@ -34,16 +34,16 @@ RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 depth=0, frames=0 TEST: reordered_in, starting at FN: 0 -RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 0)=0 depth=1, frames=1 -RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 1)=0 depth=2, frames=2 -RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 4)=0 depth=5, frames=3 -RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 3)=0 depth=4, frames=4 -RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 5)=0 depth=6, frames=5 -RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 2)=0 depth=3, frames=6 -RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 6)=0 depth=7, frames=7 -RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 7)=0 depth=8, frames=8 -RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 8)=0 depth=9, frames=9 -RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 9)=0 depth=10, frames=10 +RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + 0)=0 depth=1, frames=1 +RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + 1)=0 depth=2, frames=2 +RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + 4)=0 depth=5, frames=3 +RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + 3)=0 depth=4, frames=4 +RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + 5)=0 depth=6, frames=5 +RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + 2)=0 depth=3, frames=6 +RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + 6)=0 depth=7, frames=7 +RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + 7)=0 depth=8, frames=8 +RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + 8)=0 depth=9, frames=9 +RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + 9)=0 depth=10, frames=10 RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 depth=9, frames=9 RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 depth=8, frames=8 RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 depth=7, frames=7 @@ -56,16 +56,16 @@ RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 depth=0, frames=0 TEST: correct_order, starting at FN: 0 -RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 0)=0 depth=1, frames=1 -RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 1)=0 depth=2, frames=2 -RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 2)=0 depth=3, frames=3 -RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 3)=0 depth=4, frames=4 -RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 4)=0 depth=5, frames=5 -RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 5)=0 depth=6, frames=6 -RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 6)=0 depth=7, frames=7 -RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 7)=0 depth=8, frames=8 -RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 8)=0 depth=9, frames=9 -RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 9)=0 depth=10, frames=10 +RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + 0)=0 depth=1, frames=1 +RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + 1)=0 depth=2, frames=2 +RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + 2)=0 depth=3, frames=3 +RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + 3)=0 depth=4, frames=4 +RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + 4)=0 depth=5, frames=5 +RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + 5)=0 depth=6, frames=6 +RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + 6)=0 depth=7, frames=7 +RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + 7)=0 depth=8, frames=8 +RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + 8)=0 depth=9, frames=9 +RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + 9)=0 depth=10, frames=10 RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 depth=9, frames=9 RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 depth=8, frames=8 RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 depth=7, frames=7 @@ -78,16 +78,16 @@ RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 depth=0, frames=0 TEST: too_old_frames, starting at FN: 0 -RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 850)=-34 depth=0, frames=0 -RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 851)=-34 depth=0, frames=0 -RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 852)=-34 depth=0, frames=0 -RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 853)=-34 depth=0, frames=0 -RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 854)=-34 depth=0, frames=0 -RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 855)=-34 depth=0, frames=0 -RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 856)=-34 depth=0, frames=0 -RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 857)=-34 depth=0, frames=0 -RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 858)=-34 depth=0, frames=0 -RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 859)=-34 depth=0, frames=0 +RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + FRAMES_PER_FIFO - 1 + 51)=-34 depth=0, frames=0 +RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + FRAMES_PER_FIFO - 1 + 52)=-34 depth=0, frames=0 +RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + FRAMES_PER_FIFO - 1 + 53)=-34 depth=0, frames=0 +RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + FRAMES_PER_FIFO - 1 + 54)=-34 depth=0, frames=0 +RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + FRAMES_PER_FIFO - 1 + 55)=-34 depth=0, frames=0 +RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + FRAMES_PER_FIFO - 1 + 56)=-34 depth=0, frames=0 +RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + FRAMES_PER_FIFO - 1 + 57)=-34 depth=0, frames=0 +RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + FRAMES_PER_FIFO - 1 + 58)=-34 depth=0, frames=0 +RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + FRAMES_PER_FIFO - 1 + 59)=-34 depth=0, frames=0 +RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + FRAMES_PER_FIFO - 1 + 60)=-34 depth=0, frames=0 RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 depth=0, frames=0 RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 depth=0, frames=0 RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 depth=0, frames=0 @@ -100,18 +100,18 @@ RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 depth=0, frames=0 TEST: bound_check, starting at FN: 0 -RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 791)=0 depth=791, frames=1 -RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 792)=0 depth=792, frames=2 -RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 793)=0 depth=793, frames=3 -RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 794)=0 depth=794, frames=4 -RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 795)=0 depth=795, frames=5 -RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 796)=0 depth=796, frames=6 -RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 797)=0 depth=797, frames=7 -RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 798)=0 depth=798, frames=8 -RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 799)=0 depth=799, frames=9 -RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 800)=0 depth=800, frames=10 -RIFO_IN(0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a, 801)=-34 depth=800, frames=10 -RIFO_IN(a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5, 0)=-34 depth=800, frames=10 +RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + FRAMES_PER_FIFO - 1 + -8)=0 depth=FRAMES_PER_FIFO - 1 + -8, frames=1 +RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + FRAMES_PER_FIFO - 1 + -7)=0 depth=FRAMES_PER_FIFO - 1 + -7, frames=2 +RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + FRAMES_PER_FIFO - 1 + -6)=0 depth=FRAMES_PER_FIFO - 1 + -6, frames=3 +RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + FRAMES_PER_FIFO - 1 + -5)=0 depth=FRAMES_PER_FIFO - 1 + -5, frames=4 +RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + FRAMES_PER_FIFO - 1 + -4)=0 depth=FRAMES_PER_FIFO - 1 + -4, frames=5 +RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + FRAMES_PER_FIFO - 1 + -3)=0 depth=FRAMES_PER_FIFO - 1 + -3, frames=6 +RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + FRAMES_PER_FIFO - 1 + -2)=0 depth=FRAMES_PER_FIFO - 1 + -2, frames=7 +RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + FRAMES_PER_FIFO - 1 + -1)=0 depth=FRAMES_PER_FIFO - 1 + -1, frames=8 +RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + FRAMES_PER_FIFO - 1 + 0)=0 depth=FRAMES_PER_FIFO - 1 + 0, frames=9 +RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + FRAMES_PER_FIFO - 1 + 1)=0 depth=FRAMES_PER_FIFO - 1 + 1, frames=10 +RIFO_IN(0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a, start fn + FRAMES_PER_FIFO - 1 + 2)=-34 depth=FRAMES_PER_FIFO - 1 + 1, frames=10 +RIFO_IN(a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5, start fn + 0)=-34 depth=FRAMES_PER_FIFO - 1 + 1, frames=10 RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 depth=9, frames=9 RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 depth=8, frames=8 RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 depth=7, frames=7 @@ -124,11 +124,11 @@ RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 depth=0, frames=0 TEST: missing_frames, starting at FN: 4294967290 -RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 4294967290)=0 depth=1, frames=1 -RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 4294967292)=0 depth=3, frames=2 -RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 4294967294)=0 depth=5, frames=3 -RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 0)=0 depth=7, frames=4 -RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 2)=0 depth=9, frames=5 +RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + 0)=0 depth=1, frames=1 +RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + 2)=0 depth=3, frames=2 +RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + 4)=0 depth=5, frames=3 +RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + 6)=0 depth=7, frames=4 +RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + 8)=0 depth=9, frames=5 RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 depth=8, frames=4 RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 depth=7, frames=4 RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 depth=6, frames=3 @@ -141,11 +141,11 @@ RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 depth=0, frames=0 TEST: missing_frames, starting at FN: 4294967290 -RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 4294967291)=0 depth=2, frames=1 -RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 4294967293)=0 depth=4, frames=2 -RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 4294967295)=0 depth=6, frames=3 -RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 1)=0 depth=8, frames=4 -RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 3)=0 depth=10, frames=5 +RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + 1)=0 depth=2, frames=1 +RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + 3)=0 depth=4, frames=2 +RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + 5)=0 depth=6, frames=3 +RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + 7)=0 depth=8, frames=4 +RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + 9)=0 depth=10, frames=5 RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 depth=9, frames=5 RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 depth=8, frames=4 RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-1 depth=7, frames=4 @@ -158,16 +158,16 @@ RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 depth=0, frames=0 TEST: reordered_in, starting at FN: 4294967290 -RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 4294967290)=0 depth=1, frames=1 -RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 4294967291)=0 depth=2, frames=2 -RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 4294967294)=0 depth=5, frames=3 -RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 4294967293)=0 depth=4, frames=4 -RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 4294967295)=0 depth=6, frames=5 -RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 4294967292)=0 depth=3, frames=6 -RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 0)=0 depth=7, frames=7 -RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 1)=0 depth=8, frames=8 -RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 2)=0 depth=9, frames=9 -RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 3)=0 depth=10, frames=10 +RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + 0)=0 depth=1, frames=1 +RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + 1)=0 depth=2, frames=2 +RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + 4)=0 depth=5, frames=3 +RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + 3)=0 depth=4, frames=4 +RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + 5)=0 depth=6, frames=5 +RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + 2)=0 depth=3, frames=6 +RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + 6)=0 depth=7, frames=7 +RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + 7)=0 depth=8, frames=8 +RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + 8)=0 depth=9, frames=9 +RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + 9)=0 depth=10, frames=10 RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 depth=9, frames=9 RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 depth=8, frames=8 RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 depth=7, frames=7 @@ -180,16 +180,16 @@ RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 depth=0, frames=0 TEST: correct_order, starting at FN: 4294967290 -RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 4294967290)=0 depth=1, frames=1 -RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 4294967291)=0 depth=2, frames=2 -RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 4294967292)=0 depth=3, frames=3 -RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 4294967293)=0 depth=4, frames=4 -RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 4294967294)=0 depth=5, frames=5 -RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 4294967295)=0 depth=6, frames=6 -RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 0)=0 depth=7, frames=7 -RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 1)=0 depth=8, frames=8 -RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 2)=0 depth=9, frames=9 -RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 3)=0 depth=10, frames=10 +RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + 0)=0 depth=1, frames=1 +RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + 1)=0 depth=2, frames=2 +RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + 2)=0 depth=3, frames=3 +RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + 3)=0 depth=4, frames=4 +RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + 4)=0 depth=5, frames=5 +RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + 5)=0 depth=6, frames=6 +RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + 6)=0 depth=7, frames=7 +RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + 7)=0 depth=8, frames=8 +RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + 8)=0 depth=9, frames=9 +RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + 9)=0 depth=10, frames=10 RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 depth=9, frames=9 RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 depth=8, frames=8 RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 depth=7, frames=7 @@ -202,16 +202,16 @@ RIFO_OUT(0909090909090909090909090909090909090909090909090909090909090909)=0 depth=0, frames=0 TEST: too_old_frames, starting at FN: 4294967290 -RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 844)=-34 depth=0, frames=0 -RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 845)=-34 depth=0, frames=0 -RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 846)=-34 depth=0, frames=0 -RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 847)=-34 depth=0, frames=0 -RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 848)=-34 depth=0, frames=0 -RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 849)=-34 depth=0, frames=0 -RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 850)=-34 depth=0, frames=0 -RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 851)=-34 depth=0, frames=0 -RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 852)=-34 depth=0, frames=0 -RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 853)=-34 depth=0, frames=0 +RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + FRAMES_PER_FIFO - 1 + 51)=-34 depth=0, frames=0 +RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + FRAMES_PER_FIFO - 1 + 52)=-34 depth=0, frames=0 +RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + FRAMES_PER_FIFO - 1 + 53)=-34 depth=0, frames=0 +RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + FRAMES_PER_FIFO - 1 + 54)=-34 depth=0, frames=0 +RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + FRAMES_PER_FIFO - 1 + 55)=-34 depth=0, frames=0 +RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + FRAMES_PER_FIFO - 1 + 56)=-34 depth=0, frames=0 +RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + FRAMES_PER_FIFO - 1 + 57)=-34 depth=0, frames=0 +RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + FRAMES_PER_FIFO - 1 + 58)=-34 depth=0, frames=0 +RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + FRAMES_PER_FIFO - 1 + 59)=-34 depth=0, frames=0 +RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + FRAMES_PER_FIFO - 1 + 60)=-34 depth=0, frames=0 RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 depth=0, frames=0 RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 depth=0, frames=0 RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 depth=0, frames=0 @@ -224,18 +224,18 @@ RIFO_OUT(ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)=-2 depth=0, frames=0 TEST: bound_check, starting at FN: 4294967290 -RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, 785)=0 depth=791, frames=1 -RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, 786)=0 depth=792, frames=2 -RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, 787)=0 depth=793, frames=3 -RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, 788)=0 depth=794, frames=4 -RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, 789)=0 depth=795, frames=5 -RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, 790)=0 depth=796, frames=6 -RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, 791)=0 depth=797, frames=7 -RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, 792)=0 depth=798, frames=8 -RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, 793)=0 depth=799, frames=9 -RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, 794)=0 depth=800, frames=10 -RIFO_IN(0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a, 795)=-34 depth=800, frames=10 -RIFO_IN(a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5, 4294967290)=-34 depth=800, frames=10 +RIFO_IN(0000000000000000000000000000000000000000000000000000000000000000, start fn + FRAMES_PER_FIFO - 1 + -8)=0 depth=FRAMES_PER_FIFO - 1 + -8, frames=1 +RIFO_IN(0101010101010101010101010101010101010101010101010101010101010101, start fn + FRAMES_PER_FIFO - 1 + -7)=0 depth=FRAMES_PER_FIFO - 1 + -7, frames=2 +RIFO_IN(0202020202020202020202020202020202020202020202020202020202020202, start fn + FRAMES_PER_FIFO - 1 + -6)=0 depth=FRAMES_PER_FIFO - 1 + -6, frames=3 +RIFO_IN(0303030303030303030303030303030303030303030303030303030303030303, start fn + FRAMES_PER_FIFO - 1 + -5)=0 depth=FRAMES_PER_FIFO - 1 + -5, frames=4 +RIFO_IN(0404040404040404040404040404040404040404040404040404040404040404, start fn + FRAMES_PER_FIFO - 1 + -4)=0 depth=FRAMES_PER_FIFO - 1 + -4, frames=5 +RIFO_IN(0505050505050505050505050505050505050505050505050505050505050505, start fn + FRAMES_PER_FIFO - 1 + -3)=0 depth=FRAMES_PER_FIFO - 1 + -3, frames=6 +RIFO_IN(0606060606060606060606060606060606060606060606060606060606060606, start fn + FRAMES_PER_FIFO - 1 + -2)=0 depth=FRAMES_PER_FIFO - 1 + -2, frames=7 +RIFO_IN(0707070707070707070707070707070707070707070707070707070707070707, start fn + FRAMES_PER_FIFO - 1 + -1)=0 depth=FRAMES_PER_FIFO - 1 + -1, frames=8 +RIFO_IN(0808080808080808080808080808080808080808080808080808080808080808, start fn + FRAMES_PER_FIFO - 1 + 0)=0 depth=FRAMES_PER_FIFO - 1 + 0, frames=9 +RIFO_IN(0909090909090909090909090909090909090909090909090909090909090909, start fn + FRAMES_PER_FIFO - 1 + 1)=0 depth=FRAMES_PER_FIFO - 1 + 1, frames=10 +RIFO_IN(0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a, start fn + FRAMES_PER_FIFO - 1 + 2)=-34 depth=FRAMES_PER_FIFO - 1 + 1, frames=10 +RIFO_IN(a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5, start fn + 0)=-34 depth=FRAMES_PER_FIFO - 1 + 1, frames=10 RIFO_OUT(0000000000000000000000000000000000000000000000000000000000000000)=0 depth=9, frames=9 RIFO_OUT(0101010101010101010101010101010101010101010101010101010101010101)=0 depth=8, frames=8 RIFO_OUT(0202020202020202020202020202020202020202020202020202020202020202)=0 depth=7, frames=7
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.