/* * (C) 2022 by sysmocom - s.f.m.c. GmbH * All Rights Reserved * * Author: Pau Espin Pedrol * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * */ #include #include #include #include #include #include #include /* CBSP WRITE-REPLACE FAILURE Message Type: WRITE-REPLACE FAILURE (3) Message Length: 44 IE: Message Identifier: 0x0031 Information Element Identifier: Message Identifier (14) Message Identifier: 0x0031 IE: New Serial Number: 0x4170 Information Element Identifier: New Serial Number (3) New Serial Number: 0x4170 IE: Failure List: 2 items Information Element Identifier: Failure List (9) Information Element Length: 15 Failure List Item: MCC 901 International Mobile, shared code, MNC 70 Clementvale Baltic OÜ, LAC 0x0018, CI 0x0030: Cause Cell-identity-not-valid Cell ID Discriminator: CGI (0) Mobile Country Code (MCC): International Mobile, shared code (901) Mobile Network Code (MNC): Clementvale Baltic OÜ (70) Location Area Code (LAC): 0x0018 Cell Identifier (CI): 0x0030 Cause: Cell-identity-not-valid (0x03) Failure List Item: LAC 02711, CI 0xc351: Cause LAI-or-LAC-not-valid Cell ID Discriminator: LAC+CI (1) Location Area Code (LAC): 0x2711 Cell Identifier (CI): 0xc351 Cause: LAI-or-LAC-not-valid (0x0f) IE: Cell List (CGI): 2 items Information Element Identifier: Cell List (4) Information Element Length: 15 Cell ID Discriminator: CGI (0) Cell List Item: MCC 901 International Mobile, shared code, MNC 70 Clementvale Baltic OÜ, LAC 0x0017, CI 0x002a Mobile Country Code (MCC): International Mobile, shared code (901) Mobile Network Code (MNC): Clementvale Baltic OÜ (70) Location Area Code (LAC): 0x0017 Cell Identifier (CI): 0x002a Cell List Item: MCC 901 International Mobile, shared code, MNC 70 Clementvale Baltic OÜ, LAC 0x0018, CI 0x002a Mobile Country Code (MCC): International Mobile, shared code (901) Mobile Network Code (MNC): Clementvale Baltic OÜ (70) Location Area Code (LAC): 0x0018 Cell Identifier (CI): 0x002a IE: Channel Indicator: basic channel Information Element Identifier: Channel Indicator (18) Channel Indicator: basic channel (0x00) */ static const char write_repl_fail_with_failure_list[] = "0300002c0e003103417009000f0009f1070018003003012711c3510f04000f0009f1070017002a09f1070018002a1200"; static struct msgb *msgb_from_hex(unsigned int size, const char *hex) { struct msgb *msg = msgb_alloc(size, "test_cbsp"); OSMO_ASSERT(msg); msg->l1h = msgb_put(msg, osmo_hexparse(hex, msg->data, msgb_tailroom(msg))); msg->l2h = msg->l1h + sizeof(struct cbsp_header); return msg; } static void test_decode(void) { struct msgb *msg; struct osmo_cbsp_decoded *cbsp_dec; printf("=== %s start ===\n", __func__); msg = msgb_from_hex(sizeof(write_repl_fail_with_failure_list), write_repl_fail_with_failure_list); cbsp_dec = osmo_cbsp_decode(NULL, msg); OSMO_ASSERT(cbsp_dec); talloc_free(cbsp_dec); msgb_free(msg); printf("=== %s end ===\n", __func__); } int main(int argc, char **argv) { test_decode(); return EXIT_SUCCESS; }