Project

General

Profile

Actions

Feature #3977

open

SABP stream delineation routines

Added by laforge over 2 years ago. Updated about 2 years ago.

Status:
New
Priority:
High
Assignee:
Target version:
-
Start date:
05/06/2019
Due date:
% Done:

30%

Spec Reference:
Tags:

Description

SABP is not only specified as ASN.1 with APER encoding, but 3GPP in their infinite wisdom specified that it will run directly inside a TCP stream.

As TCP, like any stream, doesn't preserve message boudaries, there's no length field or other framing that would tell us once a given SABP PDU is fully received. Instead, we have to implement something like an "incremental APER length determinant parser" which will parse the outer length of the APER encoded data, and then use the result of that to determine the length of one binary/encoded SABP PDU.

See dissect_per_length_determinant() from wireshark packet-per.c which is actually used by the wireshark SABP dissector, facing the same problem.


Related issues

Related to OsmoCBC - Feature #3979: TTCN3 SABP supportResolvedlaforge05/06/2019

Actions
Related to OsmoCBC - Feature #4944: 3G SABP support in OsmoCBCNewlaforge01/13/2021

Actions
Actions #1

Updated by laforge over 2 years ago

Actions #2

Updated by laforge over 2 years ago

  • Tags set to SMSCB
Actions #3

Updated by laforge over 2 years ago

  • Priority changed from Normal to High
Actions #4

Updated by laforge about 2 years ago

  • % Done changed from 0 to 30

The implementation in TTCN3 can be seen at https://gerrit.osmocom.org/#/c/osmo-ttcn3-hacks/+/15590/, specifically in the functions f_aper_len_det() and f_APER_getMsgLen() which are (as the name implies) written as reather generic helpers for APER-in-TCP.

This code has been validated using SABP_Selftests.ttcn which is part of the upcoming CBC test suite.

Actions #5

Updated by laforge 11 months ago

Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)