Attention is currently required from: neels, laforge, fixeria. msuraev has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/29084 )
Change subject: SIGTRAN: cache Optional Data for SCCP CR/CC/RLSD ......................................................................
Patch Set 14:
(4 comments)
This change is ready for review.
Patchset:
PS14: I've added comment to the line which raised questions - hopefully this would clarify things.
File src/sccp_scoc.c:
https://gerrit.osmocom.org/c/libosmo-sccp/+/29084/comment/6ce89fd4_8d05fbff PS8, Line 659: break
drop the "break;"
Done
File src/sccp_scoc.c:
https://gerrit.osmocom.org/c/libosmo-sccp/+/29084/comment/48dbaa89_d31e82c7 PS14, Line 603: if (conn->opt_data_cache->cb[0] != exp_type)
cosmetic: we use curly braces around multi-line blocks, even if it's only a single statement within […]
Done
https://gerrit.osmocom.org/c/libosmo-sccp/+/29084/comment/a86dafd8_0ce12659 PS14, Line 1110: xua_opt_data_send_cache(conn, SUA_CO_CORE, xua->hdr.msg_class);
or maybe this? […]
I think I'm missing a point in here. Could you elaborate - what exactly you think should be changed in here and why?
That's both the intention behind this code and how the result looks like in wireshark: A B ------> Conn Req (cache Optional Data) <------ Conn Conf ------> DT1 with cached data
When the lib receieve CR with way too much data (but not big enough to not fit into DT1) we cache it, send CR without optional data and send DT1 after receiving CC. To make sure we do not interfere with regular user traffic the DT1 (with outstanding optional data from CR) is sent here from conn_pend_out state before we notify lib user that CC was received.
You can reproduce this yourself by following readme for examples/ code which is already merged to master.