osmo-msc/src/libmsc
Harald Welte c2007855ce Implement checks for duplicate uplink UL L3 message
According to TS 24.007 Section 11.2.3.2.3, it is possible that uplink L3
messages are duplicated in some scenarios, particularly during
assignment/handover procedure.

To avoid L3 entities from seeing duplicated messages, there's a modulo-2
or modulo-4 message sequence counter, based on which the MSC can detect
and suppress such duplicate messages.

It appears that even our unit tests were wrong in that regard so far.
Rather than manually adjusting each and every message, let's make sure
that the sequence number generation always increments as expected, and
that during matching of incoming messages, sequence numbers are masked
out.

Note: the tests will only pass from libosmocore Change-Id
Iec875a77f5458322dfbef174f5abfc0e8c09d464 onwards, due to
gsm48_hdr_msg_type() being broken in earlier versions.

Change-Id: Id15e399ab7e1b05dcd426b292886fa19d36082b1
Closes: #2908
2018-02-03 20:30:03 +00:00
..
Makefile.am remove dead code in auth.h / auth.c 2018-01-25 00:38:05 +01:00
a_iface.c cosmetic: log prim operation as text 2018-01-24 14:03:54 +00:00
a_iface_bssap.c cosmetic: rename sccp_rx_udt and sccp_rx_dt to a_* 2017-12-20 16:14:50 +00:00
ctrl_commands.c Add control command to expire subscriber 2018-01-05 10:10:35 +00:00
db.c Delete expired SMS automatically. 2018-01-25 20:30:40 +00:00
gsm_04_08.c Implement checks for duplicate uplink UL L3 message 2018-02-03 20:30:03 +00:00
gsm_04_11.c Accept SMS for any receiver 2018-01-25 16:16:38 +00:00
gsm_04_14.c Massive removal of unused code/structs/headers 2018-01-25 00:18:05 +01:00
gsm_04_80.c rename include/openbsc to include/osmocom/msc 2017-09-06 16:41:25 +02:00
gsm_subscriber.c Massive removal of unused code/structs/headers 2018-01-25 00:18:05 +01:00
iu_dummy.c rename include/openbsc to include/osmocom/msc 2017-09-06 16:41:25 +02:00
iucs.c rename include/openbsc to include/osmocom/msc 2017-09-06 16:41:25 +02:00
iucs_ranap.c rename include/openbsc to include/osmocom/msc 2017-09-06 16:41:25 +02:00
meas_feed.h move openbsc/* to repos root 2017-07-12 23:17:10 +00:00
mncc.c Massive removal of unused code/structs/headers 2018-01-25 00:18:05 +01:00
mncc_builtin.c Massive removal of unused code/structs/headers 2018-01-25 00:18:05 +01:00
mncc_sock.c MNCC: Add input validation 2018-01-23 17:03:05 +00:00
msc_ifaces.c fix build: remove obsolete header legacy_mgcp/mgcp.h 2017-09-24 19:52:25 +02:00
msc_vty.c Permit a set of multiple different A5 ciphers 2018-01-28 00:09:42 +00:00
osmo_msc.c msc_cipher_mode_compl: Handle CIPH MOD COMPL without L3 message 2018-01-24 23:12:15 +01:00
rrlp.c Massive removal of unused code/structs/headers 2018-01-25 00:18:05 +01:00
silent_call.c Massive removal of unused code/structs/headers 2018-01-25 00:18:05 +01:00
smpp_openbsc.c Make sending an SMS to an unknown subscriber B work over SMPP. 2018-01-31 19:49:48 +00:00
smpp_smsc.c smpp_smsc.c: don't talloc_strdup NULL pointers 2018-01-07 19:04:10 +01:00
smpp_smsc.h libmsc: add support for SMPP delivery receipts 2017-08-27 02:33:49 +02:00
smpp_utils.c rename include/openbsc to include/osmocom/msc 2017-09-06 16:41:25 +02:00
smpp_vty.c vty: skip installing cmds now always installed by default 2017-11-01 00:51:21 +01:00
sms_queue.c Delete expired SMS automatically. 2018-01-25 20:30:40 +00:00
subscr_conn.c subscr_conn: introduce usage tokens for ref error tracking 2017-11-27 15:40:01 +01:00
transaction.c remove unused paging.h and osmo_bsc_grace.h 2018-01-24 23:29:51 +01:00
ussd.c src/libmsc/ussd.c: drop useless forward declaration 2018-01-10 22:17:37 +06:00
vty_interface_layer3.c Add a VTY command which deletes all expired SMS. 2018-01-25 16:16:15 +00:00