Revert "bts: limit stderr logging to ERROR to avoid long write() to ext4 fs"
This reverts commit 3c798765f04dd7428c76e3c5cbf3f2ee27a0af4d.
Reducing logging verbosity did not help: we're still seeing the clock skew errors and restarts. This makes debugging harder, and is not relevant anymore because we've switched to tmpfs [1].
Revert "bts: limit stderr logging to NOTICE to avoid long write() to ext4 fs"
This reverts commit c3ab9ec33f37c6837fb8bcb0fa0bbd2e98781fb7.
Reducing logging verbosity did not help: we're still seeing the clock skew errors and restarts. This makes debugging harder, and is not relevant anymore because we've switched to tmpfs [1].
If a TCAP message arrives which is: * not a TCAP Begin or Abort (e.g. a TCAP Continue) * not in the TCAP session cache/tracking * not have a dTID for a registered TCAP Add Range
The tcap load-share will reject this message with a UDTS
CCID: Check if reader handles special P3 value 0x00 correctly
If data is requested from SIM with P3 set 0x00, it means that 256 bytes are requested. The reader will receive a procedure byte, which must cause it to receive all 256 data bytes + two status words.
CCID: Check if reader restarts WWT upon NULL procedure byte
The reader will receive a NULL procedure byte every 0.2 for a long time. The reader may only respond with a status that time extension was requested. At the end the SIM proceeds with a valid response. This response must be returned by the reader.
CCID: Check if reader sends request TPDU with maximum size
The maximum size of a request TPDU can have 5 bytes header and 255 bytes data. It is expected that the reader transmits all bytes to SIM without failure.
CCID: Check response of reader with empty SIM carrier
The reader has a SIM carrier inserted, but there is no response from the SIM while expecting the ATR. The reader will get a timeout and is expected to respond with a suitable error code.
The test uses the slot with the SIMtrace inserted. The SIMtrace will not respond with an ATR. This way there is no (extra) empty slot required for this test.
CCID: Check if reader times out while expecting status words
A case 1 APDU is sent toward the reader. The reader expects two status words. If none of these are sent by the SIM the reader must timeout and send an error message back to the host.
NGAP: UESecurityCapabilities is optional in PathSwitchRequestAcknowledge
Current master branch of Open5GS includes UESecurityCapabilities IE in PathSwitchRequestAcknowledge, older versions do not. In order to match message of all versions, replace the IE by an an asterisk.
A SELECT APDU must have a header + two bytes of data (what to select). The test truncates this APDU in all variants, ranging from 6 bytes down to 0 bytes. The reader may respond with an error caused by invald request or with and error caused by timeout of the SIM.
CCID: Integrate SIMTRACE emulation into test cases
This integration allows to add tests that use SIMtrace hardware instead of a physical SIM. These tests can be used to test handling of invalid behaviors, such as invalid responses or timeouts.
The number of slots (mp_use_slot_count) are reduced to 7, so that the 8th slot can be used with a SIMtrace for subsequent tests.
CCID: Check if reader handles truncated SIM response
The reader knows how many byte of data is expected in the SIM response. The emulated SIM will truncate that response, so that some data and the final status words are not sent by the SIM. The tests expects the reader to time out and return an appropriate error core.
Do not reuse the container that gets started to build the testsuite and test components, to also do the the first testsuite run. Restart it after selecting the current testenv*.cfg, and use the podman_extra value from the right config instead.
As side-effect, this also makes the container restart logic much simpler.
Expect SlotStatus or DataBlock. The specification states that DataBlock response is used to indicate, if Secure command is not suppported. Existing implementation, such as Omnikey Cardman 3121 or osmo-ccid-firmware respond with SlotStatus instead.
The previous logic of not always running "make deps" was useful when "make deps" would take a long time to complete even if there were no changes. But this has been fixed in c7e40d6a ("Makefile: avoid fetching deps if not needed"). Run it every time now in order to fix that deps are not updated after deps/Makefile gets changed.
With this patch it is already possible to transmit the NAS Auth Response in the test ConnHdlr. We still lack generating a proper RES to have the response properly accepted.
testenv: podman: Install newer libcurl from bookworm-backports
It was already spotted a few days ago that libcurl4 7.88.1-10+deb12u12, currently being shipped by debian12, contains some sort of bug where it doesn't properly format/read HTTP2 requests when used in open5gs. It was found out that installing a newer version of libcurl4 fixes the problem. This patch also fixes the problems spotted in the 5gc testsuite when running within podman (they didn't show up outside podman because I'm using Archlinux and hence using newer libcurl 8.13.0 too).
Install eclipse-titan from osmocom:nightly instead of osmocom:latest, which now has version 11. Once we ensured everything works as expected, we will upgrade the version in osmocom:latest too.