{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.EVT70sgt/b1/libosmocore_1.11.0-2_armhf.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.EVT70sgt/b2/libosmocore_1.11.0-2_armhf.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,25 +1,25 @@\n \n- 2130000eafd763924a123818c8b27155 439748 doc optional libosmocodec-doc_1.11.0-2_all.deb\n+ 29aa74df7f9a66bbba6987eca45c6879 439800 doc optional libosmocodec-doc_1.11.0-2_all.deb\n 724257bd5875ce8753a76d521413125a 19452 debug optional libosmocodec4-dbgsym_1.11.0-2_armhf.deb\n c70e5fc9e7130e7552f28d280bbfc555 23692 libs optional libosmocodec4_1.11.0-2_armhf.deb\n b9f24648ea549e7e4ed7b76d62857631 494716 doc optional libosmocoding-doc_1.11.0-2_all.deb\n 7ebc762c0c2f3fa4cdb4c181274c7551 87620 debug optional libosmocoding0-dbgsym_1.11.0-2_armhf.deb\n bcba14a98580203fd00b4e8ea13d4306 42148 libs optional libosmocoding0_1.11.0-2_armhf.deb\n 0f800a1203933536e750cbe4140dfd93 202760 libdevel optional libosmocore-dev_1.11.0-2_armhf.deb\n 695ddec8594550729c94e852a3189648 1023024 doc optional libosmocore-doc_1.11.0-2_all.deb\n 8dca1008a2ea3dd1786e0de4baaf4485 16336 debug optional libosmocore-utils-dbgsym_1.11.0-2_armhf.deb\n 9306d6c4ce62e434c2074ca18ab402f3 23124 utils optional libosmocore-utils_1.11.0-2_armhf.deb\n 1bd1dc9930357bf665f56c309b4cc14e 361376 debug optional libosmocore22-dbgsym_1.11.0-2_armhf.deb\n c5415942699c52329b4f7be3a6e88062 123360 libs optional libosmocore22_1.11.0-2_armhf.deb\n ce8848d078b24174cf9a838030ff054d 16132 libs optional libosmocore_1.11.0-2_armhf.deb\n- 0afcea85172accdfd883a9dca25962ff 424676 doc optional libosmoctrl-doc_1.11.0-2_all.deb\n+ fb5b47bf59f86ed020aa228691c5b4db 424684 doc optional libosmoctrl-doc_1.11.0-2_all.deb\n 60c5cda7f2722d7f36f2ae08fa5879d4 42216 debug optional libosmoctrl0-dbgsym_1.11.0-2_armhf.deb\n 72292476760757692ec4eaded0554100 30544 libs optional libosmoctrl0_1.11.0-2_armhf.deb\n- 04153759682238c86d82ba0877338fa1 842388 doc optional libosmogb-doc_1.11.0-2_all.deb\n+ a919de7d0d016584a4954a92c524e99d 841652 doc optional libosmogb-doc_1.11.0-2_all.deb\n c7122281c78772856dfaab3e1c4fd994 439680 debug optional libosmogb14-dbgsym_1.11.0-2_armhf.deb\n 270ceee9a5ac5415bc0d247261209e39 132640 libs optional libosmogb14_1.11.0-2_armhf.deb\n e317ee91ed86358408d083a14377d1a9 2110616 doc optional libosmogsm-doc_1.11.0-2_all.deb\n ce0572803ab9031d09f70a7e519a8d3f 671268 debug optional libosmogsm20-dbgsym_1.11.0-2_armhf.deb\n 085a5b11ee083982a8f458296104959b 177432 libs optional libosmogsm20_1.11.0-2_armhf.deb\n 39252c670a40044c84767dd515ac07ec 343760 doc optional libosmoisdn-doc_1.11.0-2_all.deb\n 53935297095e120bc1902b19e126e1de 77768 debug optional libosmoisdn0-dbgsym_1.11.0-2_armhf.deb\n"}, {"source1": "libosmocodec-doc_1.11.0-2_all.deb", "source2": "libosmocodec-doc_1.11.0-2_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2025-03-03 18:11:59.000000 debian-binary\n -rw-r--r-- 0 0 0 7368 2025-03-03 18:11:59.000000 control.tar.xz\n--rw-r--r-- 0 0 0 432188 2025-03-03 18:11:59.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 432240 2025-03-03 18:11:59.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "./usr/share/doc/libosmocore/codec/html/ecu__fr_8c.html", "source2": "./usr/share/doc/libosmocore/codec/html/ecu__fr_8c.html", "unified_diff": "@@ -240,15 +240,15 @@\n \n \n static \n \n \n
\n \n-

References __attribute__, OSMO_ECU_CODEC_FR, osmo_ecu_ops_fr, and osmo_ecu_register().

\n+

References __attribute__, OSMO_ECU_CODEC_FR, osmo_ecu_ops_fr, and osmo_ecu_register().

\n \n
\n \n \n

◆ _osmo_ecu_state_get_fr()

\n \n
\n"}]}]}]}, {"source1": "libosmoctrl-doc_1.11.0-2_all.deb", "source2": "libosmoctrl-doc_1.11.0-2_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2025-03-03 18:11:59.000000 debian-binary\n--rw-r--r-- 0 0 0 7076 2025-03-03 18:11:59.000000 control.tar.xz\n--rw-r--r-- 0 0 0 417408 2025-03-03 18:11:59.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 7064 2025-03-03 18:11:59.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 417428 2025-03-03 18:11:59.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "./usr/share/doc/libosmocore/ctrl/html/control__cmd_8c.html", "source2": "./usr/share/doc/libosmocore/ctrl/html/control__cmd_8c.html", "unified_diff": "@@ -122,15 +122,15 @@\n \n \n \n \n \n \n-\n+\n \n \n \n \n \n \n \n@@ -152,15 +152,15 @@\n \n \n \n \n \n \n \n-\n+\n \n \n \n \n \n \n \n@@ -596,15 +596,15 @@\n \n \n

\n Functions

vector cmd_make_descvec (const char *string, const char *descstr)
 
static struct ctrl_cmd_elementctrl_cmd_get_element_match (vector vline, vector node)
 
int ctrl_cmd_exec (vector vline, struct ctrl_cmd *command, vector node, void *data)
int ctrl_cmd_exec (vector vline, struct ctrl_cmd *command, vector node, void *data)
 Execute a given received command.
 
static void add_word (struct ctrl_cmd_struct *cmd, const char *start, const char *end)
 
static void create_cmd_struct (struct ctrl_cmd_struct *cmd, const char *name)
 
int ctrl_cmd_install (enum ctrl_node_type node, struct ctrl_cmd_element *cmd)
 
struct ctrl_cmdctrl_cmd_parse3 (void *ctx, struct msgb *msg, bool *parse_failed)
 Parse/Decode CTRL from Message buffers into command struct.
 
struct msgbctrl_cmd_make (struct ctrl_cmd *cmd)
 Encode a given CTRL command from its parsed form into a message buffer.
 
struct ctrl_cmd_defctrl_cmd_def_make (const void *ctx, struct ctrl_cmd *cmd, void *data, unsigned int secs)
struct ctrl_cmd_defctrl_cmd_def_make (const void *ctx, struct ctrl_cmd *cmd, void *data, unsigned int secs)
 Build a deferred control command state and keep it the per-connection list of deferred commands.
 
int ctrl_cmd_def_is_zombie (struct ctrl_cmd_def *cd)
 Determine if the given deferred control command is still alive or a zombie.
 
int ctrl_cmd_def_send (struct ctrl_cmd_def *cd)
 Send the response to a deferred ctrl command.
[in]nodeCTRL interface node
[in]dataopaque data passed to verify(), get() and set() call-backs
\n \n \n
Returns
CTRL_CMD_HANDLED or CTRL_CMD_REPLY; CTRL_CMD_ERROR on error
\n \n-

References CTRL_CMD_ERROR, ctrl_cmd_get_element_match(), CTRL_CMD_REPLY, CTRL_TYPE_ERROR, CTRL_TYPE_GET, CTRL_TYPE_GET_REPLY, CTRL_TYPE_SET, CTRL_TYPE_SET_REPLY, data, ctrl_cmd_element::get, node, ctrl_cmd::reply, ctrl_cmd_element::set, ctrl_cmd::type, ctrl_cmd::value, and ctrl_cmd_element::verify.

\n+

References CTRL_CMD_ERROR, ctrl_cmd_get_element_match(), CTRL_CMD_REPLY, CTRL_TYPE_ERROR, CTRL_TYPE_GET, CTRL_TYPE_GET_REPLY, CTRL_TYPE_SET, CTRL_TYPE_SET_REPLY, data, ctrl_cmd_element::get, node, ctrl_cmd::reply, ctrl_cmd_element::set, ctrl_cmd::type, ctrl_cmd::value, and ctrl_cmd_element::verify.

\n \n

Referenced by ctrl_cmd_handle().

\n \n
\n \n \n

◆ ctrl_cmd_get_element_match()

\n"}, {"source1": "./usr/share/doc/libosmocore/ctrl/html/control__cmd_8h.html", "source2": "./usr/share/doc/libosmocore/ctrl/html/control__cmd_8h.html", "unified_diff": "@@ -214,24 +214,24 @@\n
\n }\n  Ctrl command types (GET, SET, ...) More...
\n  \n \n \n-\n+\n \n \n \n \n \n \n \n \n-\n+\n \n \n \n \n \n \n \n@@ -807,23 +807,23 @@\n \n \n \n

\n Functions

struct ctrl_cmd_defctrl_cmd_def_make (const void *ctx, struct ctrl_cmd *cmd, void *data, unsigned int secs)
struct ctrl_cmd_defctrl_cmd_def_make (const void *ctx, struct ctrl_cmd *cmd, void *data, unsigned int secs)
 Build a deferred control command state and keep it the per-connection list of deferred commands.
 
int ctrl_cmd_def_is_zombie (struct ctrl_cmd_def *cd)
 Determine if the given deferred control command is still alive or a zombie.
 
int ctrl_cmd_def_send (struct ctrl_cmd_def *cd)
 Send the response to a deferred ctrl command.
 
int ctrl_cmd_exec (vector vline, struct ctrl_cmd *command, vector node, void *data)
int ctrl_cmd_exec (vector vline, struct ctrl_cmd *command, vector node, void *data)
 Execute a given received command.
 
int ctrl_cmd_install (enum ctrl_node_type node, struct ctrl_cmd_element *cmd)
 Install a given command definition at a given CTRL node.
 
int ctrl_cmd_send (struct osmo_wqueue *queue, struct ctrl_cmd *cmd)
 Encode a CTRL command and append it to the given ctrl_connection.
)
\n
\n Value:
static int get_##cmdname(struct ctrl_cmd *cmd, void *_data) \\
\n
{ \\
\n-
dtype *data = cmd->node; \\
\n-
cmd->reply = talloc_asprintf(cmd, "%s", data->element); \\
\n+
dtype *data = cmd->node; \\
\n+
cmd->reply = talloc_asprintf(cmd, "%s", data->element); \\
\n
if (!cmd->reply) { \\
\n
cmd->reply = "OOM"; \\
\n
return CTRL_CMD_ERROR; \\
\n
} \\
\n
return CTRL_CMD_REPLY; \\
\n
}
\n-
uint8_t data[0]
\n+
uint8_t data[0]
\n
\n

Helper to generate static GET function for string.

\n
Parameters
\n \n \n \n \n@@ -913,16 +913,16 @@\n \n \n \n
[in]cmdnamesymbol name of the command related function
[in]dtypename of outer struct of user data
[in]elementname of field within dtype
)
\n
\n Value:
static int set_##cmdname(struct ctrl_cmd *cmd, void *_data) \\
\n
{ \\
\n-
dtype *data = cmd->node; \\
\n-
osmo_talloc_replace_string(cmd->node, &data->element, cmd->value); \\
\n+
dtype *data = cmd->node; \\
\n+
osmo_talloc_replace_string(cmd->node, &data->element, cmd->value); \\
\n
return get_##cmdname(cmd, _data); \\
\n
}
\n
\n

Helper to generate static SET function for string.

\n
Parameters
\n \n \n@@ -1282,15 +1282,15 @@\n \n \n
[in]cmdnamesymbol name of the command related function
[in]nodeCTRL interface node
[in]dataopaque data passed to verify(), get() and set() call-backs
\n
\n
\n
Returns
CTRL_CMD_HANDLED or CTRL_CMD_REPLY; CTRL_CMD_ERROR on error
\n \n-

References CTRL_CMD_ERROR, ctrl_cmd_get_element_match(), CTRL_CMD_REPLY, CTRL_TYPE_ERROR, CTRL_TYPE_GET, CTRL_TYPE_GET_REPLY, CTRL_TYPE_SET, CTRL_TYPE_SET_REPLY, data, ctrl_cmd_element::get, node, ctrl_cmd::reply, ctrl_cmd_element::set, ctrl_cmd::type, ctrl_cmd::value, and ctrl_cmd_element::verify.

\n+

References CTRL_CMD_ERROR, ctrl_cmd_get_element_match(), CTRL_CMD_REPLY, CTRL_TYPE_ERROR, CTRL_TYPE_GET, CTRL_TYPE_GET_REPLY, CTRL_TYPE_SET, CTRL_TYPE_SET_REPLY, data, ctrl_cmd_element::get, node, ctrl_cmd::reply, ctrl_cmd_element::set, ctrl_cmd::type, ctrl_cmd::value, and ctrl_cmd_element::verify.

\n \n

Referenced by ctrl_cmd_handle().

\n \n
\n \n \n

◆ ctrl_cmd_install()

\n"}, {"source1": "./usr/share/doc/libosmocore/ctrl/html/control__cmd_8h_source.html", "source2": "./usr/share/doc/libosmocore/ctrl/html/control__cmd_8h_source.html", "unified_diff": "@@ -185,17 +185,17 @@\n
92};
\n \n
93
\n
\n
96struct ctrl_cmd_element {
\n
98 const char *name;
\n
99 struct ctrl_cmd_struct strcmd;
\n-
101 int (*set)(struct ctrl_cmd *cmd, void *data);
\n-
103 int (*get)(struct ctrl_cmd *cmd, void *data);
\n-
105 int (*verify)(struct ctrl_cmd *cmd, const char *value, void *data);
\n+
101 int (*set)(struct ctrl_cmd *cmd, void *data);
\n+
103 int (*get)(struct ctrl_cmd *cmd, void *data);
\n+
105 int (*verify)(struct ctrl_cmd *cmd, const char *value, void *data);
\n
106};
\n
\n
107
\n
\n
108struct ctrl_cmd_map {
\n
109 char *cmd;
\n
110 enum ctrl_type type;
\n@@ -396,15 +396,15 @@\n
@ CTRL_NODE_TS
Definition control_cmd.h:24
\n
@ CTRL_NODE_TRX
Definition control_cmd.h:23
\n
@ CTRL_NODE_BTS
Definition control_cmd.h:22
\n
@ CTRL_NODE_FSM_INST
Definition control_cmd.h:26
\n
int ctrl_cmd_send(struct osmo_wqueue *queue, struct ctrl_cmd *cmd)
Encode a CTRL command and append it to the given ctrl_connection.
Definition control_if.c:119
\n
int ctrl_cmd_install(enum ctrl_node_type node, struct ctrl_cmd_element *cmd)
Install a given command definition at a given CTRL node.
Definition control_cmd.c:210
\n
int ctrl_cmd_exec(vector vline, struct ctrl_cmd *command, vector node, void *data)
Execute a given received command.
Definition control_cmd.c:95
\n-
uint8_t data[0]
\n+
uint8_t data[0]
\n
\n
\n
\n
Definition control_cmd.h:114
\n
void * data
Definition control_cmd.h:117
\n
struct llist_head list
Definition control_cmd.h:115
\n
struct ctrl_cmd * cmd
Definition control_cmd.h:116
\n"}, {"source1": "./usr/share/doc/libosmocore/ctrl/html/control__if_8c.html", "source2": "./usr/share/doc/libosmocore/ctrl/html/control__if_8c.html", "unified_diff": "@@ -158,71 +158,71 @@\n  Send TRAP over given Control Interface.
\n  \n struct ctrl_cmdctrl_cmd_trap (struct ctrl_cmd *cmd)\n  Copy given cmd and convert copy to CTRL_TYPE_TRAP.
\n  \n static void control_close_conn (struct ctrl_connection *ccon)\n  \n-int ctrl_cmd_handle (struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data)\n+int ctrl_cmd_handle (struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data)\n  \n static int handle_control_read (struct osmo_fd *bfd)\n  \n int ctrl_handle_msg (struct ctrl_handle *ctrl, struct ctrl_connection *ccon, struct msgb *msg)\n  Handle a received CTRL command contained in a Message buffers.
\n  \n static int control_write_cb (struct osmo_fd *bfd, struct msgb *msg)\n  \n-struct ctrl_connectionosmo_ctrl_conn_alloc (void *ctx, void *data)\n+struct ctrl_connectionosmo_ctrl_conn_alloc (void *ctx, void *data)\n  Allocate CTRL connection.
\n  \n static int listen_fd_cb (struct osmo_fd *listen_bfd, unsigned int what)\n  \n static uint64_t get_rate_ctr_value (const struct rate_ctr *ctr, int intv, const char *grp)\n  \n static int get_rate_ctr_group_idx (struct rate_ctr_group *ctrg, int intv, struct ctrl_cmd *cmd)\n  \n-static int ctrl_rate_ctr_group_handler (struct rate_ctr_group *ctrg, void *data)\n+static int ctrl_rate_ctr_group_handler (struct rate_ctr_group *ctrg, void *data)\n  \n  CTRL_CMD_DEFINE (rate_ctr, "rate_ctr *")\n  \n-static int get_rate_ctr (struct ctrl_cmd *cmd, void *data)\n+static int get_rate_ctr (struct ctrl_cmd *cmd, void *data)\n  \n-static int set_rate_ctr (struct ctrl_cmd *cmd, void *data)\n+static int set_rate_ctr (struct ctrl_cmd *cmd, void *data)\n  \n-static int verify_rate_ctr (struct ctrl_cmd *cmd, const char *value, void *data)\n+static int verify_rate_ctr (struct ctrl_cmd *cmd, const char *value, void *data)\n  \n  CTRL_CMD_DEFINE_RO (stat_item, "stat_item *")\n  \n-static int get_stat_item (struct ctrl_cmd *cmd, void *data)\n+static int get_stat_item (struct ctrl_cmd *cmd, void *data)\n  \n  CTRL_CMD_DEFINE (counter, "counter *")\n  \n-static int get_counter (struct ctrl_cmd *cmd, void *data)\n+static int get_counter (struct ctrl_cmd *cmd, void *data)\n  \n-static int set_counter (struct ctrl_cmd *cmd, void *data)\n+static int set_counter (struct ctrl_cmd *cmd, void *data)\n  \n-static int verify_counter (struct ctrl_cmd *cmd, const char *value, void *data)\n+static int verify_counter (struct ctrl_cmd *cmd, const char *value, void *data)\n  \n-struct ctrl_handlectrl_interface_setup (void *data, uint16_t port, ctrl_cmd_lookup lookup)\n+struct ctrl_handlectrl_interface_setup (void *data, uint16_t port, ctrl_cmd_lookup lookup)\n  \n static int ctrl_init (unsigned int node_count)\n  \n-struct ctrl_handlectrl_handle_alloc2 (void *ctx, void *data, ctrl_cmd_lookup lookup, unsigned int node_count)\n+struct ctrl_handlectrl_handle_alloc2 (void *ctx, void *data, ctrl_cmd_lookup lookup, unsigned int node_count)\n  Allocate a CTRL interface handle.
\n  \n-struct ctrl_handlectrl_handle_alloc (void *ctx, void *data, ctrl_cmd_lookup lookup)\n+struct ctrl_handlectrl_handle_alloc (void *ctx, void *data, ctrl_cmd_lookup lookup)\n  Allocate a CTRL interface handle.
\n  \n-struct ctrl_handlectrl_interface_setup_dynip2 (void *data, const char *bind_addr, uint16_t port, ctrl_cmd_lookup lookup, unsigned int node_count)\n+struct ctrl_handlectrl_interface_setup_dynip2 (void *data, const char *bind_addr, uint16_t port, ctrl_cmd_lookup lookup, unsigned int node_count)\n  Setup CTRL interface on a given address.
\n  \n-struct ctrl_handlectrl_interface_setup_dynip (void *data, const char *bind_addr, uint16_t port, ctrl_cmd_lookup lookup)\n+struct ctrl_handlectrl_interface_setup_dynip (void *data, const char *bind_addr, uint16_t port, ctrl_cmd_lookup lookup)\n  Setup CTRL interface on a given address.
\n  \n-struct ctrl_handlectrl_interface_setup2 (void *data, uint16_t default_port, ctrl_cmd_lookup lookup, unsigned int node_count)\n+struct ctrl_handlectrl_interface_setup2 (void *data, uint16_t default_port, ctrl_cmd_lookup lookup, unsigned int node_count)\n  Initializes CTRL interface using the configured bind addr/port.
\n  \n int ctrl_lookup_register (ctrl_cmd_lookup lookup)\n  Install a lookup helper function for control nodes This function is used by e.g.
\n  \n struct ctrl_cmdctrl_cmd_exec_from_string (struct ctrl_handle *ch, const char *cmdstr)\n  Helper for \"local execution\" of a CTRL command from a string The function will parse + execute the given control command string and return a corresponding ctrl_cmd.
\n@@ -459,15 +459,15 @@\n \n )\n \n \n \n
\n \n-

References ctrl_cmd_def::cmd, cmd_free_strvec(), cmd_make_strvec(), cmdvec, CTRL_CMD_ERROR, ctrl_cmd_exec(), CTRL_CMD_HANDLED, CTRL_CMD_REPLY, CTRL_NODE_ROOT, ctrl_node_vec, CTRL_TYPE_ERROR, CTRL_TYPE_GET_REPLY, CTRL_TYPE_SET_REPLY, ctrl_type_vals, data, ctrl_cmd_def::data, DLCTRL, get_value_string(), ctrl_cmd::id, lookup_helper::list, llist_for_each_entry, LOGL_DEBUG, LOGL_ERROR, LOGL_NOTICE, LOGP, ctrl_handle::lookup, lookup_helper::lookup, node, ctrl_cmd::node, ctrl_cmd::reply, ctrl_handle::reply_cb, ctrl_cmd::type, ctrl_cmd::variable, vector_active, vector_free(), vector_init(), vector_lookup(), vector_set(), and vector_slot.

\n+

References ctrl_cmd_def::cmd, cmd_free_strvec(), cmd_make_strvec(), cmdvec, CTRL_CMD_ERROR, ctrl_cmd_exec(), CTRL_CMD_HANDLED, CTRL_CMD_REPLY, CTRL_NODE_ROOT, ctrl_node_vec, CTRL_TYPE_ERROR, CTRL_TYPE_GET_REPLY, CTRL_TYPE_SET_REPLY, ctrl_type_vals, data, ctrl_cmd_def::data, DLCTRL, get_value_string(), ctrl_cmd::id, lookup_helper::list, llist_for_each_entry, LOGL_DEBUG, LOGL_ERROR, LOGL_NOTICE, LOGP, ctrl_handle::lookup, lookup_helper::lookup, node, ctrl_cmd::node, ctrl_cmd::reply, ctrl_handle::reply_cb, ctrl_cmd::type, ctrl_cmd::variable, vector_active, vector_free(), vector_init(), vector_lookup(), vector_set(), and vector_slot.

\n \n

Referenced by ctrl_cmd_exec_from_string(), and ctrl_handle_msg().

\n \n
\n \n \n

◆ ctrl_cmd_send()

\n@@ -1170,15 +1170,15 @@\n \n \n static \n \n \n
\n \n-

References data, rate_ctr_group::desc, rate_ctr_group_desc::group_name_prefix, rate_ctr_group::idx, and ctrl_cmd::reply.

\n+

References data, rate_ctr_group::desc, rate_ctr_group_desc::group_name_prefix, rate_ctr_group::idx, and ctrl_cmd::reply.

\n \n

Referenced by get_rate_ctr().

\n \n
\n \n \n

◆ get_counter()

\n@@ -1516,15 +1516,15 @@\n [in]ctxContext from which talloc should allocate it \n [in]datacaller's private data parameter which should assigned to write queue's file descriptor data parameter. \n \n \n \n
Returns
Allocated CTRL connection structure or NULL in case of errors
\n \n-

References osmo_wqueue::bfd, ctrl_connection::cmds, control_write_cb(), osmo_fd::data, data, ctrl_connection::def_cmds, osmo_fd::fd, handle_control_read(), INIT_LLIST_HEAD, osmo_wqueue_init(), osmo_wqueue::read_cb, osmo_wqueue::write_cb, and ctrl_connection::write_queue.

\n+

References osmo_wqueue::bfd, ctrl_connection::cmds, control_write_cb(), osmo_fd::data, data, ctrl_connection::def_cmds, osmo_fd::fd, handle_control_read(), INIT_LLIST_HEAD, osmo_wqueue_init(), osmo_wqueue::read_cb, osmo_wqueue::write_cb, and ctrl_connection::write_queue.

\n \n

Referenced by listen_fd_cb().

\n \n \n \n \n

◆ osmo_fsm_ctrl_cmds_install()

\n"}, {"source1": "./usr/share/doc/libosmocore/ctrl/html/control__if_8h.html", "source2": "./usr/share/doc/libosmocore/ctrl/html/control__if_8h.html", "unified_diff": "@@ -105,17 +105,17 @@\n

\n Data Structures

\n struct  ctrl_handle\n  \n \n \n-\n+\n \n-\n+\n \n

\n Typedefs

typedef int(* ctrl_cmd_lookup) (void *data, vector vline, int *node_type, void **node_data, int *i)
typedef int(* ctrl_cmd_lookup) (void *data, vector vline, int *node_type, void **node_data, int *i)
 
typedef void(* ctrl_cmd_reply_cb) (struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data)
typedef void(* ctrl_cmd_reply_cb) (struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data)
 
\n \n \n \n \n@@ -124,35 +124,35 @@\n \n \n \n \n \n \n \n-\n+\n \n \n-\n+\n \n \n-\n+\n \n-\n+\n \n \n-\n+\n \n \n-\n+\n \n \n-\n+\n \n \n-\n+\n \n \n \n \n \n \n \n@@ -164,29 +164,29 @@\n \n

◆ ctrl_cmd_lookup

\n \n
\n
\n

\n Functions

int ctrl_parse_get_num (vector vline, int i, long *num)
 Parse ascii-encoded decimal number at vline[i].
 
 
int ctrl_cmd_send2 (struct ctrl_connection *ccon, struct ctrl_cmd *cmd)
 Encode a CTRL command and append it to the given ctrl_connection.
 
int ctrl_cmd_send_trap (struct ctrl_handle *ctrl, const char *name, char *value)
 Send TRAP over given Control Interface.
 
struct ctrl_handlectrl_handle_alloc (void *ctx, void *data, ctrl_cmd_lookup lookup)
struct ctrl_handlectrl_handle_alloc (void *ctx, void *data, ctrl_cmd_lookup lookup)
 Allocate a CTRL interface handle.
 
struct ctrl_handlectrl_handle_alloc2 (void *ctx, void *data, ctrl_cmd_lookup lookup, unsigned int node_count)
struct ctrl_handlectrl_handle_alloc2 (void *ctx, void *data, ctrl_cmd_lookup lookup, unsigned int node_count)
 Allocate a CTRL interface handle.
 
struct ctrl_handlectrl_interface_setup (void *data, uint16_t port, ctrl_cmd_lookup lookup)
struct ctrl_handlectrl_interface_setup (void *data, uint16_t port, ctrl_cmd_lookup lookup)
 
struct ctrl_handlectrl_interface_setup2 (void *data, uint16_t default_port, ctrl_cmd_lookup lookup, unsigned int node_count)
struct ctrl_handlectrl_interface_setup2 (void *data, uint16_t default_port, ctrl_cmd_lookup lookup, unsigned int node_count)
 Initializes CTRL interface using the configured bind addr/port.
 
struct ctrl_handlectrl_interface_setup_dynip (void *data, const char *bind_addr, uint16_t port, ctrl_cmd_lookup lookup) OSMO_DEPRECATED_OUTSIDE_LIBOSMOCORE
struct ctrl_handlectrl_interface_setup_dynip (void *data, const char *bind_addr, uint16_t port, ctrl_cmd_lookup lookup) OSMO_DEPRECATED_OUTSIDE_LIBOSMOCORE
 Setup CTRL interface on a given address.
 
struct ctrl_handlectrl_interface_setup_dynip2 (void *data, const char *bind_addr, uint16_t port, ctrl_cmd_lookup lookup, unsigned int node_count) OSMO_DEPRECATED_OUTSIDE_LIBOSMOCORE
struct ctrl_handlectrl_interface_setup_dynip2 (void *data, const char *bind_addr, uint16_t port, ctrl_cmd_lookup lookup, unsigned int node_count) OSMO_DEPRECATED_OUTSIDE_LIBOSMOCORE
 Setup CTRL interface on a given address.
 
struct ctrl_connectionosmo_ctrl_conn_alloc (void *ctx, void *data)
struct ctrl_connectionosmo_ctrl_conn_alloc (void *ctx, void *data)
 Allocate CTRL connection.
 
int ctrl_cmd_handle (struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data)
int ctrl_cmd_handle (struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data)
 
struct ctrl_cmdctrl_cmd_exec_from_string (struct ctrl_handle *ch, const char *cmdstr)
 Helper for \"local execution\" of a CTRL command from a string The function will parse + execute the given control command string and return a corresponding ctrl_cmd.
 
int ctrl_lookup_register (ctrl_cmd_lookup lookup)
 Install a lookup helper function for control nodes This function is used by e.g.
 
\n \n- \n+ \n \n
typedef int(* ctrl_cmd_lookup) (void *data, vector vline, int *node_type, void **node_data, int *i)typedef int(* ctrl_cmd_lookup) (void *data, vector vline, int *node_type, void **node_data, int *i)
\n
\n \n
\n \n \n

◆ ctrl_cmd_reply_cb

\n \n
\n
\n \n \n- \n+ \n \n
typedef void(* ctrl_cmd_reply_cb) (struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data)typedef void(* ctrl_cmd_reply_cb) (struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data)
\n
\n \n
\n
\n

Function Documentation

\n@@ -257,15 +257,15 @@\n \n )\n \n \n \n
\n \n-

References ctrl_cmd_def::cmd, cmd_free_strvec(), cmd_make_strvec(), cmdvec, CTRL_CMD_ERROR, ctrl_cmd_exec(), CTRL_CMD_HANDLED, CTRL_CMD_REPLY, CTRL_NODE_ROOT, ctrl_node_vec, CTRL_TYPE_ERROR, CTRL_TYPE_GET_REPLY, CTRL_TYPE_SET_REPLY, ctrl_type_vals, data, ctrl_cmd_def::data, DLCTRL, get_value_string(), ctrl_cmd::id, lookup_helper::list, llist_for_each_entry, LOGL_DEBUG, LOGL_ERROR, LOGL_NOTICE, LOGP, ctrl_handle::lookup, lookup_helper::lookup, node, ctrl_cmd::node, ctrl_cmd::reply, ctrl_handle::reply_cb, ctrl_cmd::type, ctrl_cmd::variable, vector_active, vector_free(), vector_init(), vector_lookup(), vector_set(), and vector_slot.

\n+

References ctrl_cmd_def::cmd, cmd_free_strvec(), cmd_make_strvec(), cmdvec, CTRL_CMD_ERROR, ctrl_cmd_exec(), CTRL_CMD_HANDLED, CTRL_CMD_REPLY, CTRL_NODE_ROOT, ctrl_node_vec, CTRL_TYPE_ERROR, CTRL_TYPE_GET_REPLY, CTRL_TYPE_SET_REPLY, ctrl_type_vals, data, ctrl_cmd_def::data, DLCTRL, get_value_string(), ctrl_cmd::id, lookup_helper::list, llist_for_each_entry, LOGL_DEBUG, LOGL_ERROR, LOGL_NOTICE, LOGP, ctrl_handle::lookup, lookup_helper::lookup, node, ctrl_cmd::node, ctrl_cmd::reply, ctrl_handle::reply_cb, ctrl_cmd::type, ctrl_cmd::variable, vector_active, vector_free(), vector_init(), vector_lookup(), vector_set(), and vector_slot.

\n \n

Referenced by ctrl_cmd_exec_from_string(), and ctrl_handle_msg().

\n \n
\n \n \n

◆ ctrl_cmd_send()

\n@@ -867,15 +867,15 @@\n [in]ctxContext from which talloc should allocate it \n [in]datacaller's private data parameter which should assigned to write queue's file descriptor data parameter. \n \n \n \n
Returns
Allocated CTRL connection structure or NULL in case of errors
\n \n-

References osmo_wqueue::bfd, ctrl_connection::cmds, control_write_cb(), osmo_fd::data, data, ctrl_connection::def_cmds, osmo_fd::fd, handle_control_read(), INIT_LLIST_HEAD, osmo_wqueue_init(), osmo_wqueue::read_cb, osmo_wqueue::write_cb, and ctrl_connection::write_queue.

\n+

References osmo_wqueue::bfd, ctrl_connection::cmds, control_write_cb(), osmo_fd::data, data, ctrl_connection::def_cmds, osmo_fd::fd, handle_control_read(), INIT_LLIST_HEAD, osmo_wqueue_init(), osmo_wqueue::read_cb, osmo_wqueue::write_cb, and ctrl_connection::write_queue.

\n \n

Referenced by listen_fd_cb().

\n \n \n \n \n \n"}, {"source1": "./usr/share/doc/libosmocore/ctrl/html/control__if_8h_source.html", "source2": "./usr/share/doc/libosmocore/ctrl/html/control__if_8h_source.html", "unified_diff": "@@ -102,17 +102,17 @@\n
3#pragma once
\n
4
\n
5#include <osmocom/core/write_queue.h>
\n
6#include <osmocom/ctrl/control_cmd.h>
\n
7
\n
8int ctrl_parse_get_num(vector vline, int i, long *num);
\n
9
\n-
10typedef int (*ctrl_cmd_lookup)(void *data, vector vline, int *node_type,
\n+
10typedef int (*ctrl_cmd_lookup)(void *data, vector vline, int *node_type,
\n
11 void **node_data, int *i);
\n-
12typedef void (*ctrl_cmd_reply_cb)(struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data);
\n+
12typedef void (*ctrl_cmd_reply_cb)(struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data);
\n
13
\n
\n
14struct ctrl_handle {
\n
15 struct osmo_fd listen_fd;
\n
16 void *data;
\n
17
\n
18 ctrl_cmd_lookup lookup;
\n@@ -172,15 +172,15 @@\n
struct ctrl_handle * ctrl_interface_setup(void *data, uint16_t port, ctrl_cmd_lookup lookup)
Definition control_if.c:891
\n
int ctrl_handle_msg(struct ctrl_handle *ctrl, struct ctrl_connection *ccon, struct msgb *msg)
Handle a received CTRL command contained in a Message buffers.
Definition control_if.c:393
\n
int ctrl_cmd_send_trap(struct ctrl_handle *ctrl, const char *name, char *value)
Send TRAP over given Control Interface.
Definition control_if.c:157
\n
struct ctrl_cmd * ctrl_cmd_exec_from_string(struct ctrl_handle *ch, const char *cmdstr)
Helper for "local execution" of a CTRL command from a string The function will parse + execute the gi...
Definition control_if.c:1090
\n
node_type
\n
#define OSMO_DEPRECATED_OUTSIDE_LIBOSMOCORE
\n
#define OSMO_DEPRECATED(text)
\n-
uint8_t data[0]
\n+
uint8_t data[0]
\n
\n
Represents a single ctrl command after parsing.
Definition control_cmd.h:68
\n
struct ctrl_connection * ccon
connection through which the command was received
Definition control_cmd.h:70
\n
Represents a single ctrl connection.
Definition control_cmd.h:46
\n
Definition control_if.h:14
\n
ctrl_cmd_lookup lookup
Definition control_if.h:18
\n
void * data
Definition control_if.h:16
\n"}, {"source1": "./usr/share/doc/libosmocore/ctrl/html/fsm__ctrl__commands_8c.html", "source2": "./usr/share/doc/libosmocore/ctrl/html/fsm__ctrl__commands_8c.html", "unified_diff": "@@ -99,30 +99,30 @@\n #include <errno.h>
\n #include <osmocom/core/fsm.h>
\n #include <osmocom/ctrl/control_cmd.h>
\n #include <osmocom/ctrl/control_if.h>
\n
\n \n-\n+\n \n \n-\n+\n \n \n \n-\n+\n \n \n \n-\n+\n \n \n \n-\n+\n \n \n \n \n \n

\n Functions

static int fsm_ctrl_node_lookup (void *data, vector vline, int *node_type, void **node_data, int *i)
static int fsm_ctrl_node_lookup (void *data, vector vline, int *node_type, void **node_data, int *i)
 control interface lookup function for FSM's
 
static int get_fsm_inst_state (struct ctrl_cmd *cmd, void *data)
static int get_fsm_inst_state (struct ctrl_cmd *cmd, void *data)
 
 CTRL_CMD_DEFINE_RO (fsm_inst_state, "state")
 
static int get_fsm_inst_parent_name (struct ctrl_cmd *cmd, void *data)
static int get_fsm_inst_parent_name (struct ctrl_cmd *cmd, void *data)
 
 CTRL_CMD_DEFINE_RO (fsm_inst_parent_name, "parent-name")
 
static int get_fsm_inst_timer (struct ctrl_cmd *cmd, void *data)
static int get_fsm_inst_timer (struct ctrl_cmd *cmd, void *data)
 
 CTRL_CMD_DEFINE_RO (fsm_inst_timer, "timer")
 
static int get_fsm_inst_dump (struct ctrl_cmd *cmd, void *data)
static int get_fsm_inst_dump (struct ctrl_cmd *cmd, void *data)
 
 CTRL_CMD_DEFINE_RO (fsm_inst_dump, "dump")
 
int osmo_fsm_ctrl_cmds_install (void)
 
\n

Function Documentation

\n"}, {"source1": "./usr/share/doc/libosmocore/ctrl/html/search/all_4.js", "source2": "./usr/share/doc/libosmocore/ctrl/html/search/all_4.js", "unified_diff": null, "details": [{"source1": "js-beautify {}", "source2": "js-beautify {}", "unified_diff": "@@ -12,15 +12,15 @@\n ['../../../gsm/html/group__gsm0808.html#gabe083297fecd14a3d87225c49b69fe88', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__oml.html#ga9373b3642341c610c476f88db967e8c7', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../core/html/group__stats.html#ga9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor))(Global Namespace)'],\n ['../../../core/html/group__sercomm.html#gaf9aace1b44b73111e15aa39f06f43456', 1, '__attribute__((weak))(Global Namespace)'],\n ['../../../core/html/group__osmo__io.html#gaa811d40f7e27f5bf851308f829f85506', 1, '__attribute__((constructor(103)))(Global Namespace)'],\n ['../../../gb/html/group__libgb.html#gacb62af91c22080e9a8fcbd87d1b737f2', 1, '__attribute__(Global Namespace)'],\n ['../../../gsm/html/group__rsl.html#ga428e812521d237f352d3eeff0a18398b', 1, '__attribute__(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga00df7213639d8b54dbb889fdf1124ece', 1, '__attribute__(Global Namespace)'],\n+ ['../../../gsm/html/group__gsm0808.html#gace4de9930729e305e0dc914eacbd8893', 1, '__attribute__(Global Namespace)'],\n ['../../../gsm/html/group__oml.html#gab90e830f0eddb6080edc75cf603f2634', 1, '__attribute__(Global Namespace)'],\n ['../../../gsm/html/structgsm48__chan__desc.html#a3f6749d653fefe2ffdd78d78e3f0eed5', 1, 'gsm48_chan_desc::__attribute__()'],\n ['../../../gsm/html/unionabis__rsl__link__id.html#a80d06146c6fd312706ec51605bfbc57b', 1, 'abis_rsl_link_id::__attribute__()'],\n ['../../../gsm/html/unionabis__rsl__chan__nr.html#a1c6785f8bda4e33238f895f1b583a30b', 1, 'abis_rsl_chan_nr::__attribute__()'],\n ['../../../gsm/html/structdtap__header.html#a6e2b5617f01acef998b0c2f7c4ee9a32', 1, 'dtap_header::__attribute__'],\n ['../../../gsm/html/structabis__rsl__rll__hdr.html#aa02bc71e017398cd5c51b859dcc2af82', 1, 'abis_rsl_rll_hdr::__attribute__']\n ]],\n"}]}, {"source1": "./usr/share/doc/libosmocore/ctrl/html/search/variables_0.js", "source2": "./usr/share/doc/libosmocore/ctrl/html/search/variables_0.js", "unified_diff": null, "details": [{"source1": "js-beautify {}", "source2": "js-beautify {}", "unified_diff": "@@ -1,13 +1,13 @@\n var searchData = [\n ['_5f_5fattribute_5f_5f_0', ['__attribute__', ['../../../gsm/html/structdtap__header.html#a6e2b5617f01acef998b0c2f7c4ee9a32', 1, 'dtap_header::__attribute__'],\n ['../../../gb/html/group__libgb.html#gacb62af91c22080e9a8fcbd87d1b737f2', 1, '__attribute__(Global Namespace)'],\n ['../../../gsm/html/group__rsl.html#ga428e812521d237f352d3eeff0a18398b', 1, '__attribute__(Global Namespace)'],\n ['../../../gsm/html/group__bssmap__le.html#gad27182647f0676ba236c59b17d7adff6', 1, '__attribute__(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga00df7213639d8b54dbb889fdf1124ece', 1, '__attribute__(Global Namespace)'],\n+ ['../../../gsm/html/group__gsm0808.html#gace4de9930729e305e0dc914eacbd8893', 1, '__attribute__(Global Namespace)'],\n ['../../../gsm/html/group__oml.html#gab90e830f0eddb6080edc75cf603f2634', 1, '__attribute__(Global Namespace)'],\n ['../../../gsm/html/structabis__rsl__rll__hdr.html#aa02bc71e017398cd5c51b859dcc2af82', 1, 'abis_rsl_rll_hdr::__attribute__']\n ]],\n ['_5fcomp128_5ftable_1', ['_comp128_table', ['../../../gsm/html/group__auth.html#ga1e4a5f73e3ef0da731c7c893e6a616bf', 1, ]]],\n ['_5fdata_2', ['_data', ['../../../core/html/structmsgb.html#a61fa77b4345e3a6db6d58a39c5e83177', 1, 'msgb']]],\n ['_5flast_5fosmovty_5fnode_3', ['_LAST_OSMOVTY_NODE', ['../../../vty/html/group__command.html#gga6a276b85e2da28c5f9c3dbce61c55682aad50ebd93ab551be0d996e818bf28fe6', 1, ]]],\n ['_5flog_5fctx_5fcount_4', ['_LOG_CTX_COUNT', ['../../../core/html/group__logging.html#gga0b31990f947ded850132fde88eac7269a5b769eab13b25bf7b21a07da3cb4091e', 1, ]]],\n"}]}, {"source1": "./usr/share/doc/libosmocore/ctrl/html/structctrl__cmd__element.html", "source2": "./usr/share/doc/libosmocore/ctrl/html/structctrl__cmd__element.html", "unified_diff": "@@ -104,36 +104,36 @@\n

\n Data Fields

\n const char * name\n  textual name/id of the CTRL command
\n  \n struct ctrl_cmd_struct strcmd\n  \n-int(* set )(struct ctrl_cmd *cmd, void *data)\n+int(* set )(struct ctrl_cmd *cmd, void *data)\n  call-back function implementing the SET operation
\n  \n-int(* get )(struct ctrl_cmd *cmd, void *data)\n+int(* get )(struct ctrl_cmd *cmd, void *data)\n  call-back function implementing the GET operation
\n  \n-int(* verify )(struct ctrl_cmd *cmd, const char *value, void *data)\n+int(* verify )(struct ctrl_cmd *cmd, const char *value, void *data)\n  call-back function to validate a value; called before SET
\n  \n \n

Detailed Description

\n

Implementation of a given CTRL command.

\n

This is what a program registers using \\r ctrl_cmd_install in order to implement a given control variable.

\n

Field Documentation

\n \n

◆ get

\n \n
\n
\n \n \n- \n+ \n \n
int(* ctrl_cmd_element::get) (struct ctrl_cmd *cmd, void *data)int(* ctrl_cmd_element::get) (struct ctrl_cmd *cmd, void *data)
\n
\n \n

call-back function implementing the GET operation

\n \n

Referenced by ctrl_cmd_exec().

\n@@ -161,15 +161,15 @@\n \n

◆ set

\n \n
\n
\n \n \n- \n+ \n \n
int(* ctrl_cmd_element::set) (struct ctrl_cmd *cmd, void *data)int(* ctrl_cmd_element::set) (struct ctrl_cmd *cmd, void *data)
\n
\n \n

call-back function implementing the SET operation

\n \n

Referenced by ctrl_cmd_exec().

\n@@ -195,15 +195,15 @@\n \n

◆ verify

\n \n
\n
\n \n \n- \n+ \n \n
int(* ctrl_cmd_element::verify) (struct ctrl_cmd *cmd, const char *value, void *data)int(* ctrl_cmd_element::verify) (struct ctrl_cmd *cmd, const char *value, void *data)
\n
\n \n

call-back function to validate a value; called before SET

\n \n

Referenced by ctrl_cmd_exec().

\n"}]}]}]}, {"source1": "libosmogb-doc_1.11.0-2_all.deb", "source2": "libosmogb-doc_1.11.0-2_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2025-03-03 18:11:59.000000 debian-binary\n--rw-r--r-- 0 0 0 15436 2025-03-03 18:11:59.000000 control.tar.xz\n--rw-r--r-- 0 0 0 826760 2025-03-03 18:11:59.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 15444 2025-03-03 18:11:59.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 826016 2025-03-03 18:11:59.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -359,15 +359,15 @@\n -rw-r--r-- 0 root (0) root (0) 15991 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_19.js\n -rw-r--r-- 0 root (0) root (0) 25387 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_1a.js\n -rw-r--r-- 0 root (0) root (0) 4503 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_1b.js\n -rw-r--r-- 0 root (0) root (0) 1637 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_1c.js\n -rw-r--r-- 0 root (0) root (0) 157 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_1d.js\n -rw-r--r-- 0 root (0) root (0) 1101 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_2.js\n -rw-r--r-- 0 root (0) root (0) 518 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_3.js\n--rw-r--r-- 0 root (0) root (0) 19060 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_4.js\n+-rw-r--r-- 0 root (0) root (0) 19069 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_4.js\n -rw-r--r-- 0 root (0) root (0) 41783 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_5.js\n -rw-r--r-- 0 root (0) root (0) 167049 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_6.js\n -rw-r--r-- 0 root (0) root (0) 71470 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_7.js\n -rw-r--r-- 0 root (0) root (0) 59887 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_8.js\n -rw-r--r-- 0 root (0) root (0) 19136 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_9.js\n -rw-r--r-- 0 root (0) root (0) 21404 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_a.js\n -rw-r--r-- 0 root (0) root (0) 203764 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/all_b.js\n@@ -454,15 +454,15 @@\n -rw-r--r-- 0 root (0) root (0) 93 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/files_9.js\n -rw-r--r-- 0 root (0) root (0) 526 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/files_a.js\n -rw-r--r-- 0 root (0) root (0) 1668 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/files_b.js\n -rw-r--r-- 0 root (0) root (0) 1067 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/files_c.js\n -rw-r--r-- 0 root (0) root (0) 318 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/files_d.js\n -rw-r--r-- 0 root (0) root (0) 811 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/files_e.js\n -rw-r--r-- 0 root (0) root (0) 980 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/files_f.js\n--rw-r--r-- 0 root (0) root (0) 15042 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/functions_0.js\n+-rw-r--r-- 0 root (0) root (0) 15051 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/functions_0.js\n -rw-r--r-- 0 root (0) root (0) 6231 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/functions_1.js\n -rw-r--r-- 0 root (0) root (0) 10592 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/functions_10.js\n -rw-r--r-- 0 root (0) root (0) 3585 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/functions_11.js\n -rw-r--r-- 0 root (0) root (0) 9378 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/functions_12.js\n -rw-r--r-- 0 root (0) root (0) 1099 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/functions_13.js\n -rw-r--r-- 0 root (0) root (0) 11213 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/functions_14.js\n -rw-r--r-- 0 root (0) root (0) 153 2025-03-03 18:11:59.000000 ./usr/share/doc/libosmocore/gb/html/search/functions_15.js\n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/bssgp__bvc__fsm_8c.html", "source2": "./usr/share/doc/libosmocore/gb/html/bssgp__bvc__fsm_8c.html", "unified_diff": "@@ -142,25 +142,25 @@\n  \n static void _tx_status (struct osmo_fsm_inst *fi, enum gprs_bssgp_cause cause, const struct msgb *rx)\n  \n static void update_negotiated_features (struct osmo_fsm_inst *fi, const struct tlv_parsed *tp)\n  \n static void _onenter_tail (struct osmo_fsm_inst *fi, uint32_t prev_state)\n  \n-static void bssgp_bvc_fsm_null (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void bssgp_bvc_fsm_null (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static void bssgp_bvc_fsm_blocked_onenter (struct osmo_fsm_inst *fi, uint32_t prev_state)\n  \n-static void bssgp_bvc_fsm_blocked (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void bssgp_bvc_fsm_blocked (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n-static void bssgp_bvc_fsm_wait_reset_ack (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void bssgp_bvc_fsm_wait_reset_ack (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n-static void bssgp_bvc_fsm_unblocked (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void bssgp_bvc_fsm_unblocked (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n-static void bssgp_bvc_fsm_allstate (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void bssgp_bvc_fsm_allstate (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static int bssgp_bvc_fsm_timer_cb (struct osmo_fsm_inst *fi)\n  \n static struct osmo_fsm_inst_bvc_fsm_alloc (void *ctx, struct gprs_ns2_inst *nsi, bool role_sgsn, uint16_t nsei, uint16_t bvci)\n  \n struct osmo_fsm_instbssgp_bvc_fsm_alloc_sig_bss (void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint32_t features)\n  Allocate a SIGNALING-BVC FSM for the BSS role (facing a remote SGSN).
\n@@ -840,15 +840,15 @@\n \n \n static \n \n \n
\n
\n \n

◆ bssgp_bvc_fsm_blocked_onenter()

\n \n
\n@@ -1206,15 +1206,15 @@\n \n \n static \n \n \n
\n \n-

References _tx_status(), bvc_fsm_priv::block_cause, bssgp2_dec_fc_bvc(), bssgp2_enc_bvc_block(), bssgp2_enc_bvc_block_ack(), bssgp2_enc_fc_bvc(), bssgp2_enc_fc_bvc_ack(), BSSGP_BVCFSM_E_REQ_BLOCK, BSSGP_BVCFSM_E_REQ_FC_BVC, BSSGP_BVCFSM_E_RX_BLOCK, BSSGP_BVCFSM_E_RX_FC_BVC, BSSGP_BVCFSM_E_RX_FC_BVC_ACK, BSSGP_BVCFSM_E_RX_UNBLOCK, BSSGP_BVCFSM_E_RX_UNBLOCK_ACK, BSSGP_BVCFSM_S_BLOCKED, BSSGP_BVCFSM_S_UNBLOCKED, BSSGP_CAUSE_SEM_INCORR_PDU, bssgp_cause_str(), BSSGP_IE_CAUSE, BSSGP_PDUT_BVC_UNBLOCK_ACK, bssgp_tx_simple_bvci(), BSSGP_XFEAT_GBIT, bvc_fsm_priv::bvci, msgb::data, data, bvc_fsm_priv::fc_granularity, bvc_fsm_priv::features, fi_tx_ptp(), fi_tx_sig(), bvc_fsm_priv::locally_blocked, LOGL_ERROR, LOGL_NOTICE, LOGPFSML, msgb_bcid, bvc_fsm_priv::negotiated, bvc_fsm_priv::nsei, bvc_fsm_priv::ops, bvc_fsm_priv::ops_priv, OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, bvc_fsm_priv::role_sgsn, bssgp_bvc_fsm_ops::rx_fc_bvc, T1, T1_SECS, bssgp2_flow_ctrl::tag, and TLVP_VAL.

\n+

References _tx_status(), bvc_fsm_priv::block_cause, bssgp2_dec_fc_bvc(), bssgp2_enc_bvc_block(), bssgp2_enc_bvc_block_ack(), bssgp2_enc_fc_bvc(), bssgp2_enc_fc_bvc_ack(), BSSGP_BVCFSM_E_REQ_BLOCK, BSSGP_BVCFSM_E_REQ_FC_BVC, BSSGP_BVCFSM_E_RX_BLOCK, BSSGP_BVCFSM_E_RX_FC_BVC, BSSGP_BVCFSM_E_RX_FC_BVC_ACK, BSSGP_BVCFSM_E_RX_UNBLOCK, BSSGP_BVCFSM_E_RX_UNBLOCK_ACK, BSSGP_BVCFSM_S_BLOCKED, BSSGP_BVCFSM_S_UNBLOCKED, BSSGP_CAUSE_SEM_INCORR_PDU, bssgp_cause_str(), BSSGP_IE_CAUSE, BSSGP_PDUT_BVC_UNBLOCK_ACK, bssgp_tx_simple_bvci(), BSSGP_XFEAT_GBIT, bvc_fsm_priv::bvci, msgb::data, data, bvc_fsm_priv::fc_granularity, bvc_fsm_priv::features, fi_tx_ptp(), fi_tx_sig(), bvc_fsm_priv::locally_blocked, LOGL_ERROR, LOGL_NOTICE, LOGPFSML, msgb_bcid, bvc_fsm_priv::negotiated, bvc_fsm_priv::nsei, bvc_fsm_priv::ops, bvc_fsm_priv::ops_priv, OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, bvc_fsm_priv::role_sgsn, bssgp_bvc_fsm_ops::rx_fc_bvc, T1, T1_SECS, bssgp2_flow_ctrl::tag, and TLVP_VAL.

\n \n
\n
\n \n

◆ bssgp_bvc_fsm_wait_reset_ack()

\n \n
\n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/frame__relay_8c.html", "source2": "./usr/share/doc/libosmocore/gb/html/frame__relay_8c.html", "unified_diff": "@@ -267,17 +267,17 @@\n  \n static int rx_lmi_q922 (struct msgb *msg)\n  \n int osmo_fr_rx (struct msgb *msg)\n  \n int osmo_fr_tx_dlc (struct msgb *msg)\n  \n-static void fr_t391_cb (void *data)\n+static void fr_t391_cb (void *data)\n  \n-static void fr_t392_cb (void *data)\n+static void fr_t392_cb (void *data)\n  \n struct osmo_fr_networkosmo_fr_network_alloc (void *ctx)\n  \n void osmo_fr_network_free (struct osmo_fr_network *net)\n  \n struct osmo_fr_linkosmo_fr_link_alloc (struct osmo_fr_network *net, enum osmo_fr_role role, const char *name)\n  \n@@ -841,15 +841,15 @@\n \n \n static \n \n \n
\n
\n \n

◆ fr_t392_cb()

\n@@ -871,15 +871,15 @@\n \n \n static \n \n \n
\n \n-

References check_link_state(), data, osmo_fr_link::err_count, osmo_fr_link::net, OSMO_ASSERT, osmo_tdef_get(), OSMO_TDEF_S, osmo_timer_schedule(), osmo_fr_link::t392, and osmo_fr_network::T_defs.

\n+

References check_link_state(), data, osmo_fr_link::err_count, osmo_fr_link::net, OSMO_ASSERT, osmo_tdef_get(), OSMO_TDEF_S, osmo_timer_schedule(), osmo_fr_link::t392, and osmo_fr_network::T_defs.

\n \n

Referenced by osmo_fr_link_alloc().

\n \n
\n
\n \n

◆ link_get_tx_seq()

\n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/frame__relay_8h_source.html", "source2": "./usr/share/doc/libosmocore/gb/html/frame__relay_8h_source.html", "unified_diff": "@@ -200,15 +200,15 @@\n
94 struct llist_head dlc_list;
\n
95
\n
96 /* optional call-back to be called for each PDU received on an unknown DLC */
\n
97 int (*unknown_dlc_rx_cb)(void *cb_data, struct msgb *msg);
\n
98 void *unknown_dlc_rx_cb_data;
\n
99
\n
100 /* call-back to be called for transmitting on the underlying hardware */
\n-
101 int (*tx_cb)(void *data, struct msgb *msg);
\n+
101 int (*tx_cb)(void *data, struct msgb *msg);
\n
102 /* optional call-back to be called each time the status changes active/inactive */
\n
103 void (*status_cb)(struct osmo_fr_link *link, void *cb_data, bool active);
\n
104 void *cb_data;
\n
105};
\n \n
106
\n
107/* Frame Relay Data Link Connection */
\n@@ -270,15 +270,15 @@\n
osmo_fr_network_alloc
struct osmo_fr_network * osmo_fr_network_alloc(void *ctx)
Definition frame_relay.c:898
\n
osmo_fr_link_alloc
struct osmo_fr_link * osmo_fr_link_alloc(struct osmo_fr_network *net, enum osmo_fr_role role, const char *name)
Definition frame_relay.c:927
\n
osmo_fr_link_free
void osmo_fr_link_free(struct osmo_fr_link *link)
Definition frame_relay.c:955
\n
osmo_fr_network_free
void osmo_fr_network_free(struct osmo_fr_network *net)
Definition frame_relay.c:914
\n
osmo_fr_dlc_by_dlci
struct osmo_fr_dlc * osmo_fr_dlc_by_dlci(struct osmo_fr_link *link, uint16_t dlci)
Definition frame_relay.c:1007
\n
osmo_fr_rx
int osmo_fr_rx(struct msgb *msg)
Definition frame_relay.c:769
\n
get_value_string
const char * get_value_string(const struct value_string *vs, uint32_t val)
\n-
data
uint8_t data[0]
\n+
data
uint8_t data[0]
\n
msg
uint8_t msg[0]
\n
linuxlist.h
\n
llist_head
\n
msgb
\n
osmo_fr_dlc
Definition frame_relay.h:108
\n
osmo_fr_dlc::add
bool add
Definition frame_relay.h:118
\n
osmo_fr_dlc::state_send
bool state_send
Definition frame_relay.h:124
\n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/gprs__bssgp_8c.html", "source2": "./usr/share/doc/libosmocore/gb/html/gprs__bssgp_8c.html", "unified_diff": "@@ -139,15 +139,15 @@\n  Transmit a BVC-RESET-ACK message with a given nsei and bvci (Chapter 10.4.12)
\n  \n int bssgp_tx_bvc_ptp_reset (uint16_t nsei, enum gprs_bssgp_cause cause)\n  Initiate reset procedure for all PTP BVC on a given NSEI.
\n  \n struct bssgp_bvc_ctxbtsctx_by_bvci_nsei (uint16_t bvci, uint16_t nsei)\n  \n-void bssgp_set_bssgp_callback (bssgp_bvc_send ns_send, void *data)\n+void bssgp_set_bssgp_callback (bssgp_bvc_send ns_send, void *data)\n  \n struct bssgp_bvc_ctxbtsctx_alloc (uint16_t bvci, uint16_t nsei)\n  \n void bssgp_bvc_ctx_free (struct bssgp_bvc_ctx *ctx)\n  \n static int bssgp_tx_fc_bvc_ack (uint16_t nsei, uint8_t tag, uint16_t ns_bvci)\n  \n@@ -185,15 +185,15 @@\n  \n int bssgp_rx_status (struct msgb *msg, struct tlv_parsed *tp, uint16_t bvci, struct bssgp_bvc_ctx *bctx)\n  \n static int fc_queue_timer_cfg (struct bssgp_flow_control *fc)\n  \n static int bssgp_fc_needs_queueing (struct bssgp_flow_control *fc, uint32_t pdu_len)\n  \n-static void fc_timer_cb (void *data)\n+static void fc_timer_cb (void *data)\n  \n static int fc_enqueue (struct bssgp_flow_control *fc, struct msgb *msg, uint32_t llc_pdu_len, void *priv)\n  \n int bssgp_fc_in (struct bssgp_flow_control *fc, struct msgb *msg, uint32_t llc_pdu_len, void *priv)\n  \n void bssgp_fc_init (struct bssgp_flow_control *fc, uint32_t bucket_size_max, uint32_t bucket_leak_rate, uint32_t max_queue_depth, int(*out_cb)(struct bssgp_flow_control *fc, struct msgb *msg, uint32_t llc_pdu_len, void *priv))\n  \n@@ -1255,15 +1255,15 @@\n \n )\n \n \n \n
\n \n-

References bssgp_ns_send, bssgp_ns_send_data, and data.

\n+

References bssgp_ns_send, bssgp_ns_send_data, and data.

\n \n
\n \n \n

◆ bssgp_set_log_ss()

\n \n
\n@@ -1922,15 +1922,15 @@\n \n \n static \n \n \n
\n \n-

References bssgp_fc_needs_queueing(), data, DLBSSGP, fc_queue_timer_cfg(), bssgp_fc_queue_element::list, bssgp_fc_queue_element::llc_pdu_len, llist_entry, LOGL_NOTICE, LOGP, bssgp_fc_queue_element::msg, llist_head::next, osmo_gettimeofday(), bssgp_flow_control::out_cb, bssgp_fc_queue_element::priv, bssgp_flow_control::queue, bssgp_flow_control::queue_depth, and bssgp_flow_control::time_last_pdu.

\n+

References bssgp_fc_needs_queueing(), data, DLBSSGP, fc_queue_timer_cfg(), bssgp_fc_queue_element::list, bssgp_fc_queue_element::llc_pdu_len, llist_entry, LOGL_NOTICE, LOGP, bssgp_fc_queue_element::msg, llist_head::next, osmo_gettimeofday(), bssgp_flow_control::out_cb, bssgp_fc_queue_element::priv, bssgp_flow_control::queue, bssgp_flow_control::queue_depth, and bssgp_flow_control::time_last_pdu.

\n \n

Referenced by fc_queue_timer_cfg().

\n \n
\n \n \n

◆ LLIST_HEAD()

\n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/gprs__bssgp_8h.html", "source2": "./usr/share/doc/libosmocore/gb/html/gprs__bssgp_8h.html", "unified_diff": "@@ -225,15 +225,15 @@\n  \n \n \n \n \n \n-\n+\n \n \n \n \n \n \n \n@@ -1080,15 +1080,15 @@\n \n \n \n \n

\n Functions

static uint32_t bssgp_pdu_type_flags (uint8_t pdu_type)
 return the PDU type flags (UL/DL/SIG/PTP/PTM) of specified PDU type
 
void bssgp_set_bssgp_callback (bssgp_bvc_send ns_send, void *data)
void bssgp_set_bssgp_callback (bssgp_bvc_send ns_send, void *data)
 
struct msgbbssgp_msgb_alloc (void)
 
struct msgbbssgp_msgb_copy (const struct msgb *msg, const char *name)
 
const charbssgp_cause_str (enum gprs_bssgp_cause cause)
 
)
\n
\n \n-

References bssgp_ns_send, bssgp_ns_send_data, and data.

\n+

References bssgp_ns_send, bssgp_ns_send_data, and data.

\n \n
\n \n \n

◆ bssgp_set_log_ss()

\n \n
\n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/gprs__ns2_8h.html", "source2": "./usr/share/doc/libosmocore/gb/html/gprs__ns2_8h.html", "unified_diff": "@@ -295,15 +295,15 @@\n  \n struct gprs_ns2_vcgprs_ns2_ip_connect2 (struct gprs_ns2_vc_bind *bind, const struct osmo_sockaddr *remote, uint16_t nsei, uint16_t nsvci, enum gprs_ns2_dialect dialect)\n  Create, connect and activate a new IP-based NS-VC.
\n  \n struct gprs_ns2_vcgprs_ns2_ip_connect_inactive (struct gprs_ns2_vc_bind *bind, const struct osmo_sockaddr *remote, struct gprs_ns2_nse *nse, uint16_t nsvci)\n  Create, and connect an inactive, new IP-based NS-VC.
\n  \n-void gprs_ns2_ip_bind_set_sns_weight (struct gprs_ns2_vc_bind *bind, uint8_t signalling, uint8_t data)\n+void gprs_ns2_ip_bind_set_sns_weight (struct gprs_ns2_vc_bind *bind, uint8_t signalling, uint8_t data)\n  set the signalling and data weight for this bind
\n  \n void gprs_ns2_free_bind (struct gprs_ns2_vc_bind *bind)\n  Destroy a given bind.
\n  \n void gprs_ns2_free_binds (struct gprs_ns2_inst *nsi)\n  \n@@ -1253,15 +1253,15 @@\n [in]bind\n [in]signallingthe signalling weight \n [in]datathe data weight \n \n \n \n \n-

References data, gprs_ns2_is_ip_bind(), ns2_sns_update_weights(), OSMO_ASSERT, gprs_ns2_vc_bind::sns_data_weight, and gprs_ns2_vc_bind::sns_sig_weight.

\n+

References data, gprs_ns2_is_ip_bind(), ns2_sns_update_weights(), OSMO_ASSERT, gprs_ns2_vc_bind::sns_data_weight, and gprs_ns2_vc_bind::sns_sig_weight.

\n \n

Referenced by DEFUN().

\n \n
\n \n \n

◆ gprs_ns2_ip_bind_sockaddr()

\n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/gprs__ns2__fr_8c.html", "source2": "./usr/share/doc/libosmocore/gb/html/gprs__ns2__fr_8c.html", "unified_diff": "@@ -193,17 +193,17 @@\n  \n static void enqueue_at_head (struct gprs_ns2_vc_bind *bind, struct msgb *msg)\n  \n static void enqueue_at_tail (struct gprs_ns2_vc_bind *bind, struct msgb *msg)\n  \n static int backlog_enqueue_or_free (struct gprs_ns2_vc_bind *bind, struct msgb *msg)\n  \n-static void fr_backlog_timer_cb (void *data)\n+static void fr_backlog_timer_cb (void *data)\n  \n-int fr_tx_cb (void *data, struct msgb *msg)\n+int fr_tx_cb (void *data, struct msgb *msg)\n  \n static int devname2ifindex (const char *ifname)\n  \n static int open_socket (int ifindex, const struct gprs_ns2_vc_bind *nsbind)\n  \n static int gprs_n2_fr_ifupdown_ind_cb (struct osmo_netdev *netdev, bool if_running)\n  \n@@ -664,15 +664,15 @@\n \n \n static \n \n \n
\n \n-

References priv_bind::backlog, data, fr_netif_write_one(), msgb::len, priv_bind::list, priv_bind::lmi_msg, msg, msgb_dequeue(), NS2_BIND_STAT_BACKLOG_LEN, osmo_stat_item_dec(), osmo_stat_item_group_get_item(), osmo_timer_schedule(), gprs_ns2_vc_bind::priv, priv_bind::retry_us, gprs_ns2_vc_bind::statg, and priv_bind::timer.

\n+

References priv_bind::backlog, data, fr_netif_write_one(), msgb::len, priv_bind::list, priv_bind::lmi_msg, msg, msgb_dequeue(), NS2_BIND_STAT_BACKLOG_LEN, osmo_stat_item_dec(), osmo_stat_item_group_get_item(), osmo_timer_schedule(), gprs_ns2_vc_bind::priv, priv_bind::retry_us, gprs_ns2_vc_bind::statg, and priv_bind::timer.

\n \n

Referenced by gprs_ns2_fr_bind().

\n \n
\n \n \n

◆ fr_dlci_rx_cb()

\n@@ -862,15 +862,15 @@\n \n )\n \n \n \n
\n \n-

References priv_bind::backlog, backlog_enqueue_or_free(), data, fr_netif_write_one(), priv_bind::list, msg, and gprs_ns2_vc_bind::priv.

\n+

References priv_bind::backlog, backlog_enqueue_or_free(), data, fr_netif_write_one(), priv_bind::list, msg, and gprs_ns2_vc_bind::priv.

\n \n

Referenced by gprs_ns2_fr_bind().

\n \n
\n \n \n

◆ fr_vc_sendmsg()

\n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/gprs__ns2__sns_8c.html", "source2": "./usr/share/doc/libosmocore/gb/html/gprs__ns2__sns_8c.html", "unified_diff": "@@ -245,73 +245,73 @@\n  \n static int do_sns_change_weight (struct osmo_fsm_inst *fi, const struct gprs_ns_ie_ip4_elem *ip4, const struct gprs_ns_ie_ip6_elem *ip6)\n  \n static int do_sns_delete (struct osmo_fsm_inst *fi, const struct gprs_ns_ie_ip4_elem *ip4, const struct gprs_ns_ie_ip6_elem *ip6)\n  \n static int do_sns_add (struct osmo_fsm_inst *fi, const struct gprs_ns_ie_ip4_elem *ip4, const struct gprs_ns_ie_ip6_elem *ip6)\n  \n-static void ns2_sns_st_bss_unconfigured (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_sns_st_bss_unconfigured (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n-static void ns2_sns_st_bss_size (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_sns_st_bss_size (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static int ns2_sns_count_num_local_ep (struct osmo_fsm_inst *fi, int ip_proto)\n  \n static int ns2_sns_copy_local_endpoints (struct ns2_sns_state *gss)\n  \n static void ns2_sns_compute_local_ep_from_binds (struct osmo_fsm_inst *fi)\n  \n static void ns2_sns_choose_next_bind (struct ns2_sns_state *gss)\n  \n static void ns2_sns_st_bss_size_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n-static void ns2_sns_st_bss_config_bss (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_sns_st_bss_config_bss (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static void ns2_sns_st_bss_config_bss_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n static int ns_sns_configured_timeout (struct osmo_fsm_inst *fi)\n  \n static int ns_sns_append_remote_eps (struct osmo_fsm_inst *fi, const struct tlv_parsed *tp)\n  \n static void ns2_sns_st_bss_config_sgsn_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n-static void ns2_sns_st_bss_config_sgsn (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_sns_st_bss_config_sgsn (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static void ns2_sns_st_configured_add (struct osmo_fsm_inst *fi, struct ns2_sns_state *gss, struct tlv_parsed *tp)\n  \n static void ns2_sns_st_configured_delete (struct osmo_fsm_inst *fi, struct ns2_sns_state *gss, struct tlv_parsed *tp)\n  \n static void ns2_sns_st_configured_change (struct osmo_fsm_inst *fi, struct ns2_sns_state *gss, struct tlv_parsed *tp)\n  \n-static void ns2_sns_st_configured (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_sns_st_configured (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static void ns2_sns_st_configured_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n static void ns2_sns_st_local_procedure_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n static void create_nsvc_for_new_sbind (struct ns2_sns_state *gss, struct ns2_sns_bind *sbind)\n  \n-static void ns2_sns_st_local_procedure (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_sns_st_local_procedure (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static int ns2_sns_fsm_bss_timer_cb (struct osmo_fsm_inst *fi)\n  \n static struct gprs_ns_ie_ip4_elemns2_get_sbind_ip4_entry (struct ns2_sns_state *gss, struct ns2_sns_bind *sbind, struct ns2_sns_elems *endpoints)\n  \n static struct gprs_ns_ie_ip6_elemns2_get_sbind_ip6_entry (struct ns2_sns_state *gss, struct ns2_sns_bind *sbind, struct ns2_sns_elems *endpoints)\n  \n static int ns2_update_weight_entry (struct ns2_sns_state *gss, struct ns2_sns_bind *sbind, struct ns2_sns_elems *endpoints)\n  \n static void ns2_add_procedure (struct ns2_sns_state *gss, struct ns2_sns_bind *sbind, enum sns_procedure procedure_type)\n  \n static int ns2_sns_add_elements (struct ns2_sns_state *gss, struct ns2_sns_bind *sbind, struct ns2_sns_elems *elems)\n  \n-static void ns2_sns_st_all_action (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_sns_st_all_action (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static int ns2_sns_bss_valid_configuration (struct ns2_sns_state *gss)\n  \n-static void ns2_sns_st_all_action_bss (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_sns_st_all_action_bss (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n struct osmo_fsm_instns2_sns_bss_fsm_alloc (struct gprs_ns2_nse *nse, const char *id)\n  Allocate an IP-SNS FSM for the BSS side.
\n  \n int ns2_sns_rx (struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp)\n  main entry point for receiving SNS messages from the network.
\n  \n@@ -344,25 +344,25 @@\n  \n void ns2_sns_update_weights (struct gprs_ns2_vc_bind *bind)\n  \n static void ns2_clear_sgsn (struct ns2_sns_state *gss, struct gprs_ns2_vc *size_nsvc)\n  \n static void ns2_sns_st_sgsn_unconfigured_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n-static void ns2_sns_st_sgsn_unconfigured (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_sns_st_sgsn_unconfigured (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n-static void ns2_sns_st_sgsn_wait_config (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_sns_st_sgsn_wait_config (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static void ns2_sns_st_sgsn_wait_config_ack_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n-static void ns2_sns_st_sgsn_wait_config_ack (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_sns_st_sgsn_wait_config_ack (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static int ns2_sns_fsm_sgsn_timer_cb (struct osmo_fsm_inst *fi)\n  \n-static void ns2_sns_st_all_action_sgsn (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_sns_st_all_action_sgsn (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n struct osmo_fsm_instns2_sns_sgsn_fsm_alloc (struct gprs_ns2_nse *nse, const char *id)\n  Allocate an IP-SNS FSM for the SGSN side.
\n  \n static __attribute__ ((constructor))\n  \n \n@@ -2243,15 +2243,15 @@\n \n \n \n
\n static
\n
\n \n-

References gprs_ns2_nse::alive, ns2_sns_state::alive, gprs_ns2_vc::bind, ns2_sns_bind::bind, ns2_sns_state::block_no_nsvc_events, gprs_ns2_nse::bss_sns_fi, data, ns2_sns_state::family, gprs_ns2_free_nsvc(), GPRS_SNS_FLAG_KEEP_SELECT_ENDPOINT_ORDER, GPRS_SNS_ROLE_BSS, GPRS_SNS_ST_BSS_CONFIG_BSS, GPRS_SNS_ST_BSS_CONFIG_SGSN, GPRS_SNS_ST_BSS_SIZE, GPRS_SNS_ST_CONFIGURED, GPRS_SNS_ST_LOCAL_PROCEDURE, GPRS_SNS_ST_UNCONFIGURED, ip46_weight_sum(), ns2_sns_procedure::list, llist_for_each_entry, llist_for_each_entry_safe, ns2_sns_state::local, ns2_sns_state::local_procedure, LOGL_ERROR, LOGPFSML, gprs_ns2_vc_bind::name, ns2_add_procedure(), ns2_sns_add_elements(), NS2_SNS_EV_REQ_ADD_BIND, NS2_SNS_EV_REQ_CHANGE_WEIGHT, NS2_SNS_EV_REQ_DELETE_BIND, NS2_SNS_EV_REQ_SELECT_ENDPOINT, ns2_update_weight_entry(), nse_inst_from_fi(), gprs_ns2_nse::nsei, gprs_ns2_nse::nsvc, ns2_sns_elems::num_ip4, ns2_sns_elems::num_ip6, ns2_sns_state::num_max_ip4_remote, ns2_sns_state::num_max_ip6_remote, ns2_sns_state::num_max_nsvcs, osmo_fsm_inst_dispatch, osmo_fsm_inst::priv, ns2_sns_procedure::procedure, ns2_sns_state::procedures, ns2_sns_state::remote, remove_bind_elem(), ns2_sns_state::role, ns2_sns_procedure::sbind, sns_failed, SNS_PROC_ADD, SNS_PROC_CHANGE_WEIGHT, SNS_PROC_DEL, osmo_fsm_inst::state, and gprs_ns2_nse::sum_sig_weight.

\n+

References gprs_ns2_nse::alive, ns2_sns_state::alive, gprs_ns2_vc::bind, ns2_sns_bind::bind, ns2_sns_state::block_no_nsvc_events, gprs_ns2_nse::bss_sns_fi, data, ns2_sns_state::family, gprs_ns2_free_nsvc(), GPRS_SNS_FLAG_KEEP_SELECT_ENDPOINT_ORDER, GPRS_SNS_ROLE_BSS, GPRS_SNS_ST_BSS_CONFIG_BSS, GPRS_SNS_ST_BSS_CONFIG_SGSN, GPRS_SNS_ST_BSS_SIZE, GPRS_SNS_ST_CONFIGURED, GPRS_SNS_ST_LOCAL_PROCEDURE, GPRS_SNS_ST_UNCONFIGURED, ip46_weight_sum(), ns2_sns_procedure::list, llist_for_each_entry, llist_for_each_entry_safe, ns2_sns_state::local, ns2_sns_state::local_procedure, LOGL_ERROR, LOGPFSML, gprs_ns2_vc_bind::name, ns2_add_procedure(), ns2_sns_add_elements(), NS2_SNS_EV_REQ_ADD_BIND, NS2_SNS_EV_REQ_CHANGE_WEIGHT, NS2_SNS_EV_REQ_DELETE_BIND, NS2_SNS_EV_REQ_SELECT_ENDPOINT, ns2_update_weight_entry(), nse_inst_from_fi(), gprs_ns2_nse::nsei, gprs_ns2_nse::nsvc, ns2_sns_elems::num_ip4, ns2_sns_elems::num_ip6, ns2_sns_state::num_max_ip4_remote, ns2_sns_state::num_max_ip6_remote, ns2_sns_state::num_max_nsvcs, osmo_fsm_inst_dispatch, osmo_fsm_inst::priv, ns2_sns_procedure::procedure, ns2_sns_state::procedures, ns2_sns_state::remote, remove_bind_elem(), ns2_sns_state::role, ns2_sns_procedure::sbind, sns_failed, SNS_PROC_ADD, SNS_PROC_CHANGE_WEIGHT, SNS_PROC_DEL, osmo_fsm_inst::state, and gprs_ns2_nse::sum_sig_weight.

\n \n

Referenced by ns2_sns_st_all_action_bss(), and ns2_sns_st_all_action_sgsn().

\n \n
\n \n \n

◆ ns2_sns_st_all_action_bss()

\n@@ -2289,15 +2289,15 @@\n \n \n static \n \n \n
\n \n-

References ns2_sns_state::block_no_nsvc_events, data, ns2_sns_state::family, GPRS_NS2_AFF_CAUSE_SNS_NO_ENDPOINTS, GPRS_SNS_ST_BSS_SIZE, GPRS_SNS_ST_UNCONFIGURED, ns2_sns_state::initial, gprs_ns2_nse::list, sns_endpoint::list, llist_entry, llist_first_entry, ns2_sns_state::local, llist_head::next, ns2_clear_elems(), ns2_free_nsvcs(), ns2_prim_status_ind(), ns2_sns_bss_valid_configuration(), NS2_SNS_EV_REQ_FREE_NSVCS, NS2_SNS_EV_REQ_NO_NSVC, NS2_SNS_EV_REQ_SELECT_ENDPOINT, ns2_sns_st_all_action(), NS_TOUT_TSNS_PROV, ns2_sns_state::nse, nse_inst_from_fi(), gprs_ns2_nse::nsi, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, ns2_sns_state::remote, ns2_sns_state::reselection_running, osmo_sockaddr::sa, sns_endpoint::saddr, ns2_sns_state::sns_endpoints, sns_failed, gprs_ns2_inst::timeout, and osmo_sockaddr::u.

\n+

References ns2_sns_state::block_no_nsvc_events, data, ns2_sns_state::family, GPRS_NS2_AFF_CAUSE_SNS_NO_ENDPOINTS, GPRS_SNS_ST_BSS_SIZE, GPRS_SNS_ST_UNCONFIGURED, ns2_sns_state::initial, gprs_ns2_nse::list, sns_endpoint::list, llist_entry, llist_first_entry, ns2_sns_state::local, llist_head::next, ns2_clear_elems(), ns2_free_nsvcs(), ns2_prim_status_ind(), ns2_sns_bss_valid_configuration(), NS2_SNS_EV_REQ_FREE_NSVCS, NS2_SNS_EV_REQ_NO_NSVC, NS2_SNS_EV_REQ_SELECT_ENDPOINT, ns2_sns_st_all_action(), NS_TOUT_TSNS_PROV, ns2_sns_state::nse, nse_inst_from_fi(), gprs_ns2_nse::nsi, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, ns2_sns_state::remote, ns2_sns_state::reselection_running, osmo_sockaddr::sa, sns_endpoint::saddr, ns2_sns_state::sns_endpoints, sns_failed, gprs_ns2_inst::timeout, and osmo_sockaddr::u.

\n \n
\n \n \n

◆ ns2_sns_st_all_action_sgsn()

\n \n
\n@@ -2333,15 +2333,15 @@\n \n \n static \n \n \n
\n \n-

References ns2_sns_state::block_no_nsvc_events, cause, data, gprs_ns2_vc::data_weight, ns2_sns_state::family, GPRS_SNS_ROLE_SGSN, GPRS_SNS_ST_SGSN_WAIT_CONFIG, GPRS_SNS_ST_UNCONFIGURED, ns2_sns_state::local, LOGL_ERROR, LOGPFSML, ns2_sns_state::N, ns2_clear_sgsn(), ns2_sns_compute_local_ep_from_binds(), ns2_sns_count_num_local_ep(), NS2_SNS_EV_REQ_FREE_NSVCS, NS2_SNS_EV_RX_SIZE, ns2_sns_st_all_action(), ns2_tx_sns_size_ack(), ns2_vc_force_unconfigured(), NS_CAUSE_INVAL_NR_IPv4_EP, NS_CAUSE_INVAL_NR_IPv6_EP, NS_CAUSE_INVAL_NR_NS_VC, NS_CAUSE_MISSING_ESSENT_IE, NS_IE_IPv4_EP_NR, NS_IE_IPv6_EP_NR, NS_IE_MAX_NR_NSVC, NS_IE_RESET_FLAG, ns2_sns_elems::num_ip4, ns2_sns_elems::num_ip6, ns2_sns_state::num_max_ip4_remote, ns2_sns_state::num_max_ip6_remote, ns2_sns_state::num_max_nsvcs, OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, ns2_sns_state::role, gprs_ns2_vc::sig_weight, sns_failed, ns2_sns_state::sns_nsvc, osmo_fsm_inst::state, TLVP_PRES_LEN, and TLVP_VAL.

\n+

References ns2_sns_state::block_no_nsvc_events, cause, data, gprs_ns2_vc::data_weight, ns2_sns_state::family, GPRS_SNS_ROLE_SGSN, GPRS_SNS_ST_SGSN_WAIT_CONFIG, GPRS_SNS_ST_UNCONFIGURED, ns2_sns_state::local, LOGL_ERROR, LOGPFSML, ns2_sns_state::N, ns2_clear_sgsn(), ns2_sns_compute_local_ep_from_binds(), ns2_sns_count_num_local_ep(), NS2_SNS_EV_REQ_FREE_NSVCS, NS2_SNS_EV_RX_SIZE, ns2_sns_st_all_action(), ns2_tx_sns_size_ack(), ns2_vc_force_unconfigured(), NS_CAUSE_INVAL_NR_IPv4_EP, NS_CAUSE_INVAL_NR_IPv6_EP, NS_CAUSE_INVAL_NR_NS_VC, NS_CAUSE_MISSING_ESSENT_IE, NS_IE_IPv4_EP_NR, NS_IE_IPv6_EP_NR, NS_IE_MAX_NR_NSVC, NS_IE_RESET_FLAG, ns2_sns_elems::num_ip4, ns2_sns_elems::num_ip6, ns2_sns_state::num_max_ip4_remote, ns2_sns_state::num_max_ip6_remote, ns2_sns_state::num_max_nsvcs, OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, ns2_sns_state::role, gprs_ns2_vc::sig_weight, sns_failed, ns2_sns_state::sns_nsvc, osmo_fsm_inst::state, TLVP_PRES_LEN, and TLVP_VAL.

\n \n
\n \n \n

◆ ns2_sns_st_bss_config_bss()

\n \n
\n@@ -2377,15 +2377,15 @@\n \n \n static \n \n \n
\n \n-

References data, gprs_ns2_cause_str(), GPRS_SNS_ROLE_BSS, GPRS_SNS_ST_BSS_CONFIG_SGSN, LOGL_ERROR, LOGPFSML, NS2_SNS_EV_RX_CONFIG_ACK, NS_IE_CAUSE, NS_TOUT_TSNS_PROV, nse_inst_from_fi(), gprs_ns2_nse::nsi, OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, ns2_sns_state::role, gprs_ns2_inst::timeout, TLVP_VAL, and TLVP_VAL_MINLEN.

\n+

References data, gprs_ns2_cause_str(), GPRS_SNS_ROLE_BSS, GPRS_SNS_ST_BSS_CONFIG_SGSN, LOGL_ERROR, LOGPFSML, NS2_SNS_EV_RX_CONFIG_ACK, NS_IE_CAUSE, NS_TOUT_TSNS_PROV, nse_inst_from_fi(), gprs_ns2_nse::nsi, OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, ns2_sns_state::role, gprs_ns2_inst::timeout, TLVP_VAL, and TLVP_VAL_MINLEN.

\n \n
\n \n \n

◆ ns2_sns_st_bss_config_bss_onenter()

\n \n
\n@@ -2459,15 +2459,15 @@\n \n \n static \n \n \n
\n \n-

References cause, create_missing_nsvcs(), data, gprs_ns2_start_alive_all_nsvcs(), GPRS_SNS_ROLE_BSS, GPRS_SNS_ST_CONFIGURED, GPRS_SNS_ST_UNCONFIGURED, ip46_weight_sum_data, ip46_weight_sum_sig, NS2_SNS_EV_RX_CONFIG, NS2_SNS_EV_RX_CONFIG_END, ns2_tx_sns_config_ack(), NS_CAUSE_INVAL_WEIGH, ns_sns_append_remote_eps(), NS_TOUT_TSNS_PROV, nse_inst_from_fi(), gprs_ns2_nse::nsi, OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_timer_schedule(), osmo_fsm_inst::priv, ns2_sns_state::remote, ns2_sns_state::role, ns2_sns_state::sns_nsvc, gprs_ns2_inst::timeout, and osmo_fsm_inst::timer.

\n+

References cause, create_missing_nsvcs(), data, gprs_ns2_start_alive_all_nsvcs(), GPRS_SNS_ROLE_BSS, GPRS_SNS_ST_CONFIGURED, GPRS_SNS_ST_UNCONFIGURED, ip46_weight_sum_data, ip46_weight_sum_sig, NS2_SNS_EV_RX_CONFIG, NS2_SNS_EV_RX_CONFIG_END, ns2_tx_sns_config_ack(), NS_CAUSE_INVAL_WEIGH, ns_sns_append_remote_eps(), NS_TOUT_TSNS_PROV, nse_inst_from_fi(), gprs_ns2_nse::nsi, OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_timer_schedule(), osmo_fsm_inst::priv, ns2_sns_state::remote, ns2_sns_state::role, ns2_sns_state::sns_nsvc, gprs_ns2_inst::timeout, and osmo_fsm_inst::timer.

\n \n
\n \n \n

◆ ns2_sns_st_bss_config_sgsn_onenter()

\n \n
\n@@ -2541,15 +2541,15 @@\n \n \n static \n \n \n
\n \n-

References data, gprs_ns2_cause_str(), GPRS_SNS_ROLE_BSS, GPRS_SNS_ST_BSS_CONFIG_BSS, LOGL_ERROR, LOGPFSML, NS2_SNS_EV_RX_SIZE_ACK, NS_IE_CAUSE, NS_TOUT_TSNS_PROV, gprs_ns2_inst::nse, nse_inst_from_fi(), OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, ns2_sns_state::role, gprs_ns2_inst::timeout, TLVP_VAL, and TLVP_VAL_MINLEN.

\n+

References data, gprs_ns2_cause_str(), GPRS_SNS_ROLE_BSS, GPRS_SNS_ST_BSS_CONFIG_BSS, LOGL_ERROR, LOGPFSML, NS2_SNS_EV_RX_SIZE_ACK, NS_IE_CAUSE, NS_TOUT_TSNS_PROV, gprs_ns2_inst::nse, nse_inst_from_fi(), OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, ns2_sns_state::role, gprs_ns2_inst::timeout, TLVP_VAL, and TLVP_VAL_MINLEN.

\n \n
\n \n \n

◆ ns2_sns_st_bss_size_onenter()

\n \n
\n@@ -2667,15 +2667,15 @@\n \n \n static \n \n \n
\n \n-

References data, NS2_SNS_EV_REQ_NSVC_ALIVE, NS2_SNS_EV_RX_ADD, NS2_SNS_EV_RX_CHANGE_WEIGHT, NS2_SNS_EV_RX_DELETE, ns2_sns_st_configured_add(), ns2_sns_st_configured_change(), ns2_sns_st_configured_delete(), osmo_timer_del(), osmo_fsm_inst::priv, and osmo_fsm_inst::timer.

\n+

References data, NS2_SNS_EV_REQ_NSVC_ALIVE, NS2_SNS_EV_RX_ADD, NS2_SNS_EV_RX_CHANGE_WEIGHT, NS2_SNS_EV_RX_DELETE, ns2_sns_st_configured_add(), ns2_sns_st_configured_change(), ns2_sns_st_configured_delete(), osmo_timer_del(), osmo_fsm_inst::priv, and osmo_fsm_inst::timer.

\n \n
\n \n \n

◆ ns2_sns_st_configured_add()

\n \n
\n@@ -2887,15 +2887,15 @@\n \n \n static \n \n \n
\n \n-

References add_ip4_elem(), add_ip6_elem(), gprs_ns2_nse::bss_sns_fi, cause, create_nsvc_for_new_sbind(), ns2_sns_state::current_procedure, data, gprs_ns_ie_ip4_elem::data_weight, gprs_ns_ie_ip6_elem::data_weight, ns2_sns_state::family, gprs_ns2_start_alive_all_nsvcs(), GPRS_SNS_ST_CONFIGURED, GPRS_SNS_ST_LOCAL_PROCEDURE, ns2_sns_procedure::ip4, ns2_sns_elems::ip4, ns2_sns_procedure::ip6, ns2_sns_elems::ip6, gprs_ns_ie_ip4_elem::ip_addr, gprs_ns_ie_ip6_elem::ip_addr, ns2_sns_procedure::list, ns2_sns_state::local, LOGL_ERROR, LOGL_INFO, LOGPFSML, NS2_SNS_EV_RX_ACK, NS2_SNS_EV_RX_ADD, NS2_SNS_EV_RX_CHANGE_WEIGHT, NS2_SNS_EV_RX_DELETE, ns2_sns_st_configured_add(), ns2_sns_st_configured_change(), ns2_sns_st_configured_delete(), NS_IE_CAUSE, NS_IE_TRANS_ID, NS_TOUT_TSNS_PROV, ns2_sns_state::nse, nse_inst_from_fi(), gprs_ns2_nse::nsei, gprs_ns2_nse::nsi, ns2_sns_elems::num_ip4, ns2_sns_elems::num_ip6, OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, ns2_sns_procedure::procedure, ns2_sns_state::procedures, remove_ip4_elem(), remove_ip6_elem(), ns2_sns_procedure::sbind, gprs_ns_ie_ip4_elem::sig_weight, gprs_ns_ie_ip6_elem::sig_weight, sns_failed, SNS_PROC_ADD, SNS_PROC_CHANGE_WEIGHT, SNS_PROC_DEL, gprs_ns2_inst::timeout, TLVP_PRESENT, ns2_sns_procedure::trans_id, gprs_ns_ie_ip4_elem::udp_port, and gprs_ns_ie_ip6_elem::udp_port.

\n+

References add_ip4_elem(), add_ip6_elem(), gprs_ns2_nse::bss_sns_fi, cause, create_nsvc_for_new_sbind(), ns2_sns_state::current_procedure, data, gprs_ns_ie_ip4_elem::data_weight, gprs_ns_ie_ip6_elem::data_weight, ns2_sns_state::family, gprs_ns2_start_alive_all_nsvcs(), GPRS_SNS_ST_CONFIGURED, GPRS_SNS_ST_LOCAL_PROCEDURE, ns2_sns_procedure::ip4, ns2_sns_elems::ip4, ns2_sns_procedure::ip6, ns2_sns_elems::ip6, gprs_ns_ie_ip4_elem::ip_addr, gprs_ns_ie_ip6_elem::ip_addr, ns2_sns_procedure::list, ns2_sns_state::local, LOGL_ERROR, LOGL_INFO, LOGPFSML, NS2_SNS_EV_RX_ACK, NS2_SNS_EV_RX_ADD, NS2_SNS_EV_RX_CHANGE_WEIGHT, NS2_SNS_EV_RX_DELETE, ns2_sns_st_configured_add(), ns2_sns_st_configured_change(), ns2_sns_st_configured_delete(), NS_IE_CAUSE, NS_IE_TRANS_ID, NS_TOUT_TSNS_PROV, ns2_sns_state::nse, nse_inst_from_fi(), gprs_ns2_nse::nsei, gprs_ns2_nse::nsi, ns2_sns_elems::num_ip4, ns2_sns_elems::num_ip6, OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, ns2_sns_procedure::procedure, ns2_sns_state::procedures, remove_ip4_elem(), remove_ip6_elem(), ns2_sns_procedure::sbind, gprs_ns_ie_ip4_elem::sig_weight, gprs_ns_ie_ip6_elem::sig_weight, sns_failed, SNS_PROC_ADD, SNS_PROC_CHANGE_WEIGHT, SNS_PROC_DEL, gprs_ns2_inst::timeout, TLVP_PRESENT, ns2_sns_procedure::trans_id, gprs_ns_ie_ip4_elem::udp_port, and gprs_ns_ie_ip6_elem::udp_port.

\n \n
\n \n \n

◆ ns2_sns_st_local_procedure_onenter()

\n \n
\n@@ -3051,15 +3051,15 @@\n \n \n static \n \n \n
\n \n-

References cause, data, GPRS_SNS_ROLE_SGSN, GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK, GPRS_SNS_ST_UNCONFIGURED, ip46_weight_sum_data, ip46_weight_sum_sig, NS2_SNS_EV_RX_CONFIG, NS2_SNS_EV_RX_CONFIG_END, ns2_tx_sns_config_ack(), NS_CAUSE_INVAL_WEIGH, ns_sns_append_remote_eps(), NS_TOUT_TSNS_PROV, gprs_ns2_inst::nse, nse_inst_from_fi(), OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_timer_schedule(), osmo_fsm_inst::priv, ns2_sns_state::remote, ns2_sns_state::role, ns2_sns_state::sns_nsvc, gprs_ns2_inst::timeout, and osmo_fsm_inst::timer.

\n+

References cause, data, GPRS_SNS_ROLE_SGSN, GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK, GPRS_SNS_ST_UNCONFIGURED, ip46_weight_sum_data, ip46_weight_sum_sig, NS2_SNS_EV_RX_CONFIG, NS2_SNS_EV_RX_CONFIG_END, ns2_tx_sns_config_ack(), NS_CAUSE_INVAL_WEIGH, ns_sns_append_remote_eps(), NS_TOUT_TSNS_PROV, gprs_ns2_inst::nse, nse_inst_from_fi(), OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_timer_schedule(), osmo_fsm_inst::priv, ns2_sns_state::remote, ns2_sns_state::role, ns2_sns_state::sns_nsvc, gprs_ns2_inst::timeout, and osmo_fsm_inst::timer.

\n \n
\n \n \n

◆ ns2_sns_st_sgsn_wait_config_ack()

\n \n
\n@@ -3095,15 +3095,15 @@\n \n \n static \n \n \n
\n \n-

References create_missing_nsvcs(), data, gprs_ns2_cause_str(), gprs_ns2_start_alive_all_nsvcs(), GPRS_SNS_ROLE_SGSN, GPRS_SNS_ST_CONFIGURED, GPRS_SNS_ST_UNCONFIGURED, LOGL_ERROR, LOGPFSML, NS2_SNS_EV_RX_CONFIG_ACK, NS_IE_CAUSE, ns_sns_configured_timeout(), nse_inst_from_fi(), OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, ns2_sns_state::role, TLVP_VAL, and TLVP_VAL_MINLEN.

\n+

References create_missing_nsvcs(), data, gprs_ns2_cause_str(), gprs_ns2_start_alive_all_nsvcs(), GPRS_SNS_ROLE_SGSN, GPRS_SNS_ST_CONFIGURED, GPRS_SNS_ST_UNCONFIGURED, LOGL_ERROR, LOGPFSML, NS2_SNS_EV_RX_CONFIG_ACK, NS_IE_CAUSE, ns_sns_configured_timeout(), nse_inst_from_fi(), OSMO_ASSERT, osmo_fsm_inst_state_chg, osmo_fsm_inst::priv, ns2_sns_state::role, TLVP_VAL, and TLVP_VAL_MINLEN.

\n \n
\n \n \n

◆ ns2_sns_st_sgsn_wait_config_ack_onenter()

\n \n
\n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/gprs__ns2__udp_8c.html", "source2": "./usr/share/doc/libosmocore/gb/html/gprs__ns2__udp_8c.html", "unified_diff": "@@ -172,15 +172,15 @@\n int ns2_ip_count_bind (struct gprs_ns2_inst *nsi, struct osmo_sockaddr *remote)\n  Count UDP binds compatible with remote.
\n  \n struct gprs_ns2_vc_bindns2_ip_get_bind_by_index (struct gprs_ns2_inst *nsi, struct osmo_sockaddr *remote, int index)\n  \n void ns2_ip_set_txqueue_max_length (struct gprs_ns2_vc_bind *bind, unsigned int max_length)\n  \n-void gprs_ns2_ip_bind_set_sns_weight (struct gprs_ns2_vc_bind *bind, uint8_t signalling, uint8_t data)\n+void gprs_ns2_ip_bind_set_sns_weight (struct gprs_ns2_vc_bind *bind, uint8_t signalling, uint8_t data)\n  set the signalling and data weight for this bind
\n  \n \n \n \n \n@@ -506,15 +506,15 @@\n \n \n \n

\n Variables

struct gprs_ns2_vc_driver vc_driver_ip
 
[in]bind
[in]signallingthe signalling weight
[in]datathe data weight
\n \n \n \n-

References data, gprs_ns2_is_ip_bind(), ns2_sns_update_weights(), OSMO_ASSERT, gprs_ns2_vc_bind::sns_data_weight, and gprs_ns2_vc_bind::sns_sig_weight.

\n+

References data, gprs_ns2_is_ip_bind(), ns2_sns_update_weights(), OSMO_ASSERT, gprs_ns2_vc_bind::sns_data_weight, and gprs_ns2_vc_bind::sns_sig_weight.

\n \n

Referenced by DEFUN().

\n \n
\n \n \n

◆ gprs_ns2_ip_bind_sockaddr()

\n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/gprs__ns2__vc__fsm_8c.html", "source2": "./usr/share/doc/libosmocore/gb/html/gprs__ns2__vc__fsm_8c.html", "unified_diff": "@@ -185,41 +185,41 @@\n  \n static void stop_test_procedure (struct gprs_ns2_vc_priv *priv)\n  \n static int alive_timer_elapsed_ms (struct gprs_ns2_vc_priv *priv)\n  \n static void recv_test_procedure (struct osmo_fsm_inst *fi)\n  \n-static void alive_timeout_handler (void *data)\n+static void alive_timeout_handler (void *data)\n  \n static void ns2_st_unconfigured_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n-static void ns2_st_unconfigured (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_st_unconfigured (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static void ns2_st_reset_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n-static void ns2_st_reset (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_st_reset (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static void ns2_st_blocked_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n-static void ns2_st_blocked (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_st_blocked (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static void ns2_st_unblocked_on_enter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n-static void ns2_st_unblocked (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_st_unblocked (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n-static void ns2_st_alive (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_st_alive (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static void ns2_st_alive_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n static int ns2_vc_fsm_timer_cb (struct osmo_fsm_inst *fi)\n  \n static void ns2_recv_unitdata (struct osmo_fsm_inst *fi, struct msgb *msg)\n  \n-static void ns2_vc_fsm_allstate_action (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void ns2_vc_fsm_allstate_action (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static void ns2_vc_fsm_clean (struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause)\n  \n struct osmo_fsm_instns2_vc_fsm_alloc (struct gprs_ns2_vc *nsvc, const char *id, bool initiator)\n  gprs_ns2_vc_fsm_alloc
\n  \n int ns2_vc_fsm_start (struct gprs_ns2_vc *nsvc)\n@@ -379,15 +379,15 @@\n \n \n static \n \n \n
\n \n-

References gprs_ns2_vc_priv::alive, data, GPRS_NS2_ST_RECOVERING, GPRS_NS2_ST_RESET, GPRS_NS2_VC_MODE_BLOCKRESET, gprs_ns2_vc::mode, gprs_ns2_vc_priv::mode, gprs_ns2_vc_priv::N, ns2_tx_alive(), NS_CTR_LOST_ALIVE, ns_inst_from_fi(), NS_TOUT_TNS_ALIVE, NS_TOUT_TNS_ALIVE_RETRIES, NS_TOUT_TNS_RESET, NS_TOUT_TNS_TEST, gprs_ns2_vc_priv::nsvc, osmo_clock_gettime(), osmo_fsm_inst_state_chg, osmo_timer_schedule(), osmo_fsm_inst::priv, RATE_CTR_INC_NS, gprs_ns2_inst::timeout, gprs_ns2_vc_priv::timer, and gprs_ns2_vc_priv::timer_started.

\n+

References gprs_ns2_vc_priv::alive, data, GPRS_NS2_ST_RECOVERING, GPRS_NS2_ST_RESET, GPRS_NS2_VC_MODE_BLOCKRESET, gprs_ns2_vc::mode, gprs_ns2_vc_priv::mode, gprs_ns2_vc_priv::N, ns2_tx_alive(), NS_CTR_LOST_ALIVE, ns_inst_from_fi(), NS_TOUT_TNS_ALIVE, NS_TOUT_TNS_ALIVE_RETRIES, NS_TOUT_TNS_RESET, NS_TOUT_TNS_TEST, gprs_ns2_vc_priv::nsvc, osmo_clock_gettime(), osmo_fsm_inst_state_chg, osmo_timer_schedule(), osmo_fsm_inst::priv, RATE_CTR_INC_NS, gprs_ns2_inst::timeout, gprs_ns2_vc_priv::timer, and gprs_ns2_vc_priv::timer_started.

\n \n

Referenced by ns2_vc_fsm_alloc().

\n \n
\n \n \n

◆ alive_timer_elapsed_ms()

\n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/gprs__ns2__vty_8c.html", "source2": "./usr/share/doc/libosmocore/gb/html/gprs__ns2__vty_8c.html", "unified_diff": "@@ -203,15 +203,15 @@\n  \n  DEFUN (cfg_no_ns_bind_ipaccess, cfg_no_ns_bind_ipaccess_cmd, "no accept-ipaccess", NO_STR "Reject NS Reset PDU on UDP (ip.access style)\\n")\n  \n  DEFUN (cfg_ns_bind_accept_sns, cfg_ns_bind_accept_sns_cmd, "accept-dynamic-ip-sns", "Allow one to create dynamic NS Entities by IP-SNS PDUs\\n")\n  \n  DEFUN (cfg_no_ns_bind_accept_sns, cfg_no_ns_bind_accept_sns_cmd, "no accept-dynamic-ip-sns", NO_STR "Disable dynamic creation of NS Entities by IP-SNS PDUs\\n")\n  \n- DEFUN (cfg_ns_bind_ip_sns_weight, cfg_ns_bind_ip_sns_weight_cmd, "ip-sns signalling-weight <0-254> data-weight <0-254>", "IP SNS\\n" "signalling weight used by IP-SNS dynamic configuration\\n" "signalling weight used by IP-SNS dynamic configuration\\n" "data weight used by IP-SNS dynamic configuration\\n" "data weight used by IP-SNS dynamic configuration\\n")\n+ DEFUN (cfg_ns_bind_ip_sns_weight, cfg_ns_bind_ip_sns_weight_cmd, "ip-sns signalling-weight <0-254> data-weight <0-254>", "IP SNS\\n" "signalling weight used by IP-SNS dynamic configuration\\n" "signalling weight used by IP-SNS dynamic configuration\\n" "data weight used by IP-SNS dynamic configuration\\n" "data weight used by IP-SNS dynamic configuration\\n")\n  \n  DEFUN (cfg_ns_bind_fr, cfg_ns_bind_fr_cmd, "fr NETIF (fr|frnet)", "frame relay\\n" IFNAME_STR "fr (user) is used by BSS or SGSN attached to UNI of a FR network\\n" "frnet (network) is used by SGSN if BSS is directly attached\\n")\n  \n  DEFUN (cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd, "no fr NETIF", NO_STR "Delete a frame relay link\\n" "Delete a frame relay link\\n" IFNAME_STR)\n  \n  DEFUN (cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, "nsvc fr NETIF dlci <16-1007> nsvci <0-65535>", "NS Virtual Connection\\n" "frame relay\\n" "frame relay interface. Must be registered via fr vty\\n" NSVCI_STR NSVCI_STR DLCI_STR DLCI_STR)\n  \n@@ -219,15 +219,15 @@\n  \n  DEFUN (cfg_no_ns_nse_nsvci, cfg_no_ns_nse_nsvci_cmd, "no nsvc nsvci <0-65535>", NO_STR "Delete NSVC\\n" NSVCI_STR NSVCI_STR)\n  \n static int ns_nse_nsvc_udp_cmds (struct vty *vty, const char *bind_name, const char *remote_char, uint16_t port, uint16_t sig_weight, uint16_t data_weight)\n  \n  DEFUN (cfg_ns_nse_nsvc_udp, cfg_ns_nse_nsvc_udp_cmd, "nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", "NS Virtual Connection\\n" "NS over UDP\\n" "A unique bind identifier created by ns bind\\n" "Remote IPv4 Address\\n" "Remote IPv6 Address\\n" "Remote UDP Port\\n")\n  \n- DEFUN (cfg_ns_nse_nsvc_udp_weights, cfg_ns_nse_nsvc_udp_weights_cmd, "nsvc udp BIND " VTY_IPV46_CMD " <1-65535> signalling-weight <0-254> data-weight <0-254>", "NS Virtual Connection\\n" "NS over UDP\\n" "A unique bind identifier created by ns bind\\n" "Remote IPv4 Address\\n" "Remote IPv6 Address\\n" "Remote UDP Port\\n" "Signalling weight of the NSVC (default = 1)\\n" "Signalling weight of the NSVC (default = 1)\\n" "Data weight of the NSVC (default = 1)\\n" "Data weight of the NSVC (default = 1)\\n")\n+ DEFUN (cfg_ns_nse_nsvc_udp_weights, cfg_ns_nse_nsvc_udp_weights_cmd, "nsvc udp BIND " VTY_IPV46_CMD " <1-65535> signalling-weight <0-254> data-weight <0-254>", "NS Virtual Connection\\n" "NS over UDP\\n" "A unique bind identifier created by ns bind\\n" "Remote IPv4 Address\\n" "Remote IPv6 Address\\n" "Remote UDP Port\\n" "Signalling weight of the NSVC (default = 1)\\n" "Signalling weight of the NSVC (default = 1)\\n" "Data weight of the NSVC (default = 1)\\n" "Data weight of the NSVC (default = 1)\\n")\n  \n  DEFUN (cfg_no_ns_nse_nsvc_udp, cfg_no_ns_nse_nsvc_udp_cmd, "no nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", NO_STR "Delete a NS Virtual Connection\\n" "NS over UDP\\n" "A unique bind identifier created by ns bind\\n" "Remote IPv4 Address\\n" "Remote IPv6 Address\\n" "Remote UDP Port\\n")\n  \n  DEFUN (cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, "nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", "NS Virtual Connection\\n" "NS over UDP ip.access style (uses RESET/BLOCK)\\n" "A unique bind identifier created by ns bind\\n" "Remote IPv4 Address\\n" "Remote IPv6 Address\\n" "Remote UDP Port\\n" NSVCI_STR NSVCI_STR)\n  \n  DEFUN (cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, "no nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", NO_STR "Delete a NS Virtual Connection\\n" "NS over UDP\\n" "A unique bind identifier created by ns bind\\n" "Remote IPv4 Address\\n" "Remote IPv6 Address\\n" "Remote UDP Port\\n" NSVCI_STR NSVCI_STR)\n  \n@@ -1385,15 +1385,15 @@\n \n cfg_ns_bind_ip_sns_weight_cmd \n , \n \n \n \n \n- "ip-sns signalling-weight <0-254> data-weight <0-254>" \n+ "ip-sns signalling-weight <0-254> data-weight <0-254>" \n , \n \n \n \n \n "IP SNS\\n" "signalling weight used by IP-SNS dynamic configuration\\n" "signalling weight used by IP-SNS dynamic configuration\\n" "data weight used by IP-SNS dynamic configuration\\n" "data weight used by IP-SNS dynamic configuration\\n" \n  \n@@ -1402,15 +1402,15 @@\n \n )\n \n \n \n
\n \n-

References argv, CMD_SUCCESS, CMD_WARNING, data, DEFUN(), gprs_ns2_bind_by_name(), gprs_ns2_ip_bind_set_sns_weight(), GPRS_NS2_LL_UDP, vty::index, vty_bind::ip_sns_data_weight, vty_bind::ip_sns_sig_weight, vty_bind::ll, vty_bind::name, VTY_NEWLINE, vty_nsi, and vty_out().

\n+

References argv, CMD_SUCCESS, CMD_WARNING, data, DEFUN(), gprs_ns2_bind_by_name(), gprs_ns2_ip_bind_set_sns_weight(), GPRS_NS2_LL_UDP, vty::index, vty_bind::ip_sns_data_weight, vty_bind::ip_sns_sig_weight, vty_bind::ll, vty_bind::name, VTY_NEWLINE, vty_nsi, and vty_out().

\n \n
\n \n \n

◆ DEFUN() [21/41]

\n \n
\n@@ -1805,15 +1805,15 @@\n \n cfg_ns_nse_nsvc_udp_weights_cmd \n , \n \n \n \n \n- "nsvc udp BIND " VTY_IPV46_CMD " <1-65535> signalling-weight <0-254> data-weight <0-254>" \n+ "nsvc udp BIND " VTY_IPV46_CMD " <1-65535> signalling-weight <0-254> data-weight <0-254>" \n , \n \n \n \n \n "NS Virtual Connection\\n" "NS over UDP\\n" "A unique bind identifier created by ns bind\\n" "Remote IPv4 Address\\n" "Remote IPv6 Address\\n" "Remote UDP Port\\n" "Signalling weight of the NSVC (default = 1)\\n" "Signalling weight of the NSVC (default = 1)\\n" "Data weight of the NSVC (default = 1)\\n" "Data weight of the NSVC (default = 1)\\n" \n  \n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/gprs__ns_8c.html", "source2": "./usr/share/doc/libosmocore/gb/html/gprs__ns_8c.html", "unified_diff": "@@ -193,15 +193,15 @@\n  \n static struct gprs_nsvcgprs_active_nsvc_by_nsei (struct gprs_ns_inst *nsi, uint16_t nsei, uint16_t bvci)\n  Determine active NS-VC for given NSEI + BVCI.
\n  \n struct gprs_nsvcgprs_nsvc_by_rem_addr (struct gprs_ns_inst *nsi, const struct sockaddr_in *sin)\n  Lookup NS-VC based on specified remote peer socket addr.
\n  \n-static void gprs_ns_timer_cb (void *data)\n+static void gprs_ns_timer_cb (void *data)\n  \n struct gprs_nsvcgprs_nsvc_create2 (struct gprs_ns_inst *nsi, uint16_t nsvci, uint8_t sig_weight, uint8_t data_weight)\n  Create a new NS-VC (Virtual Circuit) within given instance.
\n  \n void gprs_nsvc_delete (struct gprs_nsvc *nsvc)\n  Delete given NS-VC.
\n  \n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/gprs__ns__sns_8c.html", "source2": "./usr/share/doc/libosmocore/gb/html/gprs__ns__sns_8c.html", "unified_diff": "@@ -185,27 +185,27 @@\n  \n static int do_sns_change_weight (struct osmo_fsm_inst *fi, const struct gprs_ns_ie_ip4_elem *ip4)\n  \n static int do_sns_delete (struct osmo_fsm_inst *fi, const struct gprs_ns_ie_ip4_elem *ip4)\n  \n static int do_sns_add (struct osmo_fsm_inst *fi, const struct gprs_ns_ie_ip4_elem *ip4)\n  \n-static void gprs_sns_st_unconfigured (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void gprs_sns_st_unconfigured (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n-static void gprs_sns_st_size (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void gprs_sns_st_size (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static void gprs_sns_st_size_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n-static void gprs_sns_st_config_bss (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void gprs_sns_st_config_bss (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static void gprs_sns_st_config_bss_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n-static void gprs_sns_st_config_sgsn (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void gprs_sns_st_config_sgsn (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n-static void gprs_sns_st_configured (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n+static void gprs_sns_st_configured (struct osmo_fsm_inst *fi, uint32_t event, void *data)\n  \n static void gprs_sns_st_configured_onenter (struct osmo_fsm_inst *fi, uint32_t old_state)\n  \n static int gprs_sns_fsm_bss_timer_cb (struct osmo_fsm_inst *fi)\n  \n struct osmo_fsm_instgprs_sns_bss_fsm_alloc (void *ctx, struct gprs_nsvc *nsvc, const char *id)\n  \n@@ -808,15 +808,15 @@\n \n \n static \n \n \n
\n \n-

References data, gprs_ns_cause_str(), GPRS_SNS_EV_CONFIG_ACK, GPRS_SNS_ST_CONFIG_SGSN, LOGL_ERROR, LOGPFSML, NS_IE_CAUSE, OSMO_ASSERT, osmo_fsm_inst_state_chg, TLVP_VAL, and TLVP_VAL_MINLEN.

\n+

References data, gprs_ns_cause_str(), GPRS_SNS_EV_CONFIG_ACK, GPRS_SNS_ST_CONFIG_SGSN, LOGL_ERROR, LOGPFSML, NS_IE_CAUSE, OSMO_ASSERT, osmo_fsm_inst_state_chg, TLVP_VAL, and TLVP_VAL_MINLEN.

\n \n
\n \n \n

◆ gprs_sns_st_config_bss_onenter()

\n \n
\n@@ -1016,15 +1016,15 @@\n \n \n static \n \n \n
\n \n-

References data, gprs_ns_cause_str(), GPRS_SNS_EV_SIZE_ACK, GPRS_SNS_ST_CONFIG_BSS, LOGL_ERROR, LOGPFSML, NS_IE_CAUSE, ns_inst_from_fi(), NS_TOUT_TSNS_PROV, OSMO_ASSERT, osmo_fsm_inst_state_chg, gprs_ns_inst::timeout, TLVP_VAL, and TLVP_VAL_MINLEN.

\n+

References data, gprs_ns_cause_str(), GPRS_SNS_EV_SIZE_ACK, GPRS_SNS_ST_CONFIG_BSS, LOGL_ERROR, LOGPFSML, NS_IE_CAUSE, ns_inst_from_fi(), NS_TOUT_TSNS_PROV, OSMO_ASSERT, osmo_fsm_inst_state_chg, gprs_ns_inst::timeout, TLVP_VAL, and TLVP_VAL_MINLEN.

\n \n
\n \n \n

◆ gprs_sns_st_size_onenter()

\n \n
\n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/group__gsm0808.js", "source2": "./usr/share/doc/libosmocore/gb/html/group__gsm0808.js", "unified_diff": null, "details": [{"source1": "js-beautify {}", "source2": "js-beautify {}", "unified_diff": "@@ -160,15 +160,15 @@\n [\"gsm48_mr_cfg_from_gsm0808_sc_cfg\", \"../../gsm/html/group__gsm0808.html#ga39c7155fede05a1df08bac9506debecf\", null],\n [\"osmo_gcr_dump\", \"../../gsm/html/group__gsm0808.html#gafdab8bcc4edb49450e1f6dfc96e99ff9\", null],\n [\"osmo_gcr_dump_buf\", \"../../gsm/html/group__gsm0808.html#ga36de357e62608d9f531a911b8d42f8db\", null],\n [\"osmo_lcls_dump\", \"../../gsm/html/group__gsm0808.html#ga97771c0c282ebeaaf0775cdf1cee9cc3\", null],\n [\"osmo_lcls_dump_buf\", \"../../gsm/html/group__gsm0808.html#gadd5198b0a955568604501be9ddeb095f\", null],\n [\"osmo_lcls_dump_c\", \"../../gsm/html/group__gsm0808.html#ga3fa89e7de132738bb4f410a461931dc3\", null],\n [\"put_old_bss_to_new_bss_information\", \"../../gsm/html/group__gsm0808.html#ga0c5d4e1a1e30a2ce74aab2f7714e656f\", null],\n- [\"__attribute__\", \"../../gsm/html/group__gsm0808.html#ga00df7213639d8b54dbb889fdf1124ece\", null],\n+ [\"__attribute__\", \"../../gsm/html/group__gsm0808.html#gace4de9930729e305e0dc914eacbd8893\", null],\n [\"bss_att_tlvdef\", \"../../gsm/html/group__gsm0808.html#gaf7a7d6c75234318878642e512947c3c7\", null],\n [\"gsm0406_dlci_sapi_names\", \"../../gsm/html/group__gsm0808.html#gab6ef2861ef657001f5c197cf056bd421\", null],\n [\"GSM0808_AI_APP_DATA\", \"../../gsm/html/group__gsm0808.html#gga407d1f6b1aa0f540160655569c1d06c6ac2969e8f92100e3a5e9cf378d4911eee\", null],\n [\"GSM0808_AI_CONFIRM_APP_DATA\", \"../../gsm/html/group__gsm0808.html#gga407d1f6b1aa0f540160655569c1d06c6a8785fe958867ea4cad7826b567a8bd77\", null],\n [\"gsm0808_amr_mode_names\", \"../../gsm/html/group__gsm0808.html#ga9ba76e2998975043c4aca31f03e245bc\", null],\n [\"gsm0808_amr_modes_from_cfg\", \"../../gsm/html/group__gsm0808.html#gafaddb849a44618ddb84db4d1f3e59634\", null],\n [\"GSM0808_ASRQ_DELAY_ALLOWED\", \"../../gsm/html/group__gsm0808.html#ggae391ef4f2c53689d90b68ff53d7f98f4aac7060a5f45ea999478ef48820f7abaf\", null],\n"}]}, {"source1": "./usr/share/doc/libosmocore/gb/html/group__libgb.html", "source2": "./usr/share/doc/libosmocore/gb/html/group__libgb.html", "unified_diff": "@@ -322,15 +322,15 @@\n  \n static struct gprs_nsvcgprs_active_nsvc_by_nsei (struct gprs_ns_inst *nsi, uint16_t nsei, uint16_t bvci)\n  Determine active NS-VC for given NSEI + BVCI.
\n  \n struct gprs_nsvcgprs_nsvc_by_rem_addr (struct gprs_ns_inst *nsi, const struct sockaddr_in *sin)\n  Lookup NS-VC based on specified remote peer socket addr.
\n  \n-static void gprs_ns_timer_cb (void *data)\n+static void gprs_ns_timer_cb (void *data)\n  \n struct gprs_nsvcgprs_nsvc_create2 (struct gprs_ns_inst *nsi, uint16_t nsvci, uint8_t sig_weight, uint8_t data_weight)\n  Create a new NS-VC (Virtual Circuit) within given instance.
\n  \n void gprs_nsvc_delete (struct gprs_nsvc *nsvc)\n  Delete given NS-VC.
\n  \n@@ -3126,15 +3126,15 @@\n \n \n static \n \n \n
\n \n-

References _NSVC_TIMER_NR, gprs_nsvc::alive_retries, gprs_ns_inst::bss_sns_fi, gprs_nsvc::ctrg, data, DEBUGP, DNS, get_value_string(), gprs_ns_tx_alive(), gprs_ns_tx_reset(), LOG_CTX_GB_NSVC, log_set_context(), LOGL_NOTICE, LOGP, NS_CAUSE_NSVC_BLOCKED, NS_CAUSE_OM_INTERVENTION, NS_CTR_BLOCKED, NS_CTR_DEAD, NS_CTR_LOST_ALIVE, NS_CTR_LOST_RESET, ns_osmo_signal_dispatch(), ns_set_state, NS_TOUT_TNS_ALIVE_RETRIES, NSE_S_BLOCKED, NSE_S_RESET, gprs_nsvc::nsei, gprs_nsvc::nsi, gprs_ns_inst::nsip, nsvc_start_timer(), NSVC_TIMER_TNS_ALIVE, NSVC_TIMER_TNS_RESET, NSVC_TIMER_TNS_TEST, rate_ctr_group_get_ctr(), S_NS_ALIVE_EXP, S_NS_BLOCK, gprs_nsvc::state, gprs_ns_inst::timeout, gprs_nsvc::timer_mode, timer_mode_strs, timer_mode_tout, and gprs_ns_inst::use_reset_block_unblock.

\n+

References _NSVC_TIMER_NR, gprs_nsvc::alive_retries, gprs_ns_inst::bss_sns_fi, gprs_nsvc::ctrg, data, DEBUGP, DNS, get_value_string(), gprs_ns_tx_alive(), gprs_ns_tx_reset(), LOG_CTX_GB_NSVC, log_set_context(), LOGL_NOTICE, LOGP, NS_CAUSE_NSVC_BLOCKED, NS_CAUSE_OM_INTERVENTION, NS_CTR_BLOCKED, NS_CTR_DEAD, NS_CTR_LOST_ALIVE, NS_CTR_LOST_RESET, ns_osmo_signal_dispatch(), ns_set_state, NS_TOUT_TNS_ALIVE_RETRIES, NSE_S_BLOCKED, NSE_S_RESET, gprs_nsvc::nsei, gprs_nsvc::nsi, gprs_ns_inst::nsip, nsvc_start_timer(), NSVC_TIMER_TNS_ALIVE, NSVC_TIMER_TNS_RESET, NSVC_TIMER_TNS_TEST, rate_ctr_group_get_ctr(), S_NS_ALIVE_EXP, S_NS_BLOCK, gprs_nsvc::state, gprs_ns_inst::timeout, gprs_nsvc::timer_mode, timer_mode_strs, timer_mode_tout, and gprs_ns_inst::use_reset_block_unblock.

\n \n

Referenced by gprs_nsvc_create2().

\n \n
\n \n \n

◆ gprs_ns_tx()

\n"}, {"source1": "./usr/share/doc/libosmocore/gb/html/navtreeindex10.js", "source2": "./usr/share/doc/libosmocore/gb/html/navtreeindex10.js", "unified_diff": null, "details": [{"source1": "js-beautify {}", "source2": "js-beautify {}", "unified_diff": "@@ -19,15 +19,14 @@\n \"group__gsm0502.html#ggafc789b32e825ea46f9f64b26a27d69d0ab1d4b8cd2494ed0c99eebf58be43fb63\": [0, 41, 11],\n \"group__gsm0502.html#ggafc789b32e825ea46f9f64b26a27d69d0af44d065cadcf8019451d4019f7e5b5fa\": [0, 41, 13],\n \"group__gsm0502.html#ggafc789b32e825ea46f9f64b26a27d69d0afad0049a2d8eb2275ec4de82b400400a\": [0, 41, 10],\n \"group__gsm0808.html\": [0, 42],\n \"group__gsm0808.html#ga0089078f7f6ffcd6bc5709e73b8c3366\": [0, 42, 152],\n \"group__gsm0808.html#ga0093f29b003e53f022ca3655add0c155\": [0, 42, 32],\n \"group__gsm0808.html#ga009aaa222b114baec385b60b8078d5ff\": [0, 42, 53],\n- \"group__gsm0808.html#ga00df7213639d8b54dbb889fdf1124ece\": [0, 42, 165],\n \"group__gsm0808.html#ga0284dcad7523250e84c6f3877a4760a2\": [0, 42, 63],\n \"group__gsm0808.html#ga02c88063b294b987d4ab06720a21c253\": [0, 42, 113],\n \"group__gsm0808.html#ga03381981a6afd7b9cb1ef52a42ce9ddd\": [0, 42, 79],\n \"group__gsm0808.html#ga03ac8e8cfa7261fc5bf63ccedcafb5f2\": [0, 42, 96],\n \"group__gsm0808.html#ga0530126b68414718f04db8d1ada62f43\": [0, 42, 62],\n \"group__gsm0808.html#ga076ed4626439c6a20b70dbc85281a637\": [0, 42, 120],\n \"group__gsm0808.html#ga09219f9a0485c3e3427f90d12ecee5f5\": [0, 42, 132],\n@@ -102,25 +101,25 @@\n \"group__gsm0808.html#ga5e1d0d1c7707c00bebac69b57e9bd771\": [0, 42, 58],\n \"group__gsm0808.html#ga5e6168d845b9c29c02634abdf94e3095\": [0, 42, 136],\n \"group__gsm0808.html#ga60b4d19e79524f83edb9094a1de51689\": [0, 42, 34],\n \"group__gsm0808.html#ga60f459be52ddc35ffaa67c386eae1185\": [0, 42, 25],\n \"group__gsm0808.html#ga6149a0a3e1c6433c7c4fbde749679dd0\": [0, 42, 91],\n \"group__gsm0808.html#ga63b9f836f0aa2d4a0411b145492fe3c9\": [0, 42, 15],\n \"group__gsm0808.html#ga6454f0098a20818629fd7836ab9fa0b0\": [0, 42, 139],\n- \"group__gsm0808.html#ga66acb22e5416b464aa6f42ddc7de0f1d\": [0, 42, 201],\n \"group__gsm0808.html#ga66acb22e5416b464aa6f42ddc7de0f1d\": [0, 42, 202],\n+ \"group__gsm0808.html#ga66acb22e5416b464aa6f42ddc7de0f1d\": [0, 42, 201],\n \"group__gsm0808.html#ga66e64c867557155e7b898f0806e5fd07\": [0, 42, 138],\n \"group__gsm0808.html#ga6b66a2c6e8d9364f8b62cfecf5b88b76\": [0, 42, 86],\n \"group__gsm0808.html#ga6e2ad14743caf122d2693cb5bfe81728\": [0, 42, 73],\n \"group__gsm0808.html#ga6eb707a2a744aeace902c2eb2c88714c\": [0, 42, 102],\n \"group__gsm0808.html#ga6f8544d031ca4842172837d989edb8bb\": [0, 42, 39],\n \"group__gsm0808.html#ga7168a30ac3f1ad472309c60badd51305\": [0, 42, 14],\n \"group__gsm0808.html#ga727ba753efdd717fcade332c871ccd54\": [0, 42, 210],\n- \"group__gsm0808.html#ga74c1dc89d2bfe4ef98592336ee203bec\": [0, 42, 195],\n \"group__gsm0808.html#ga74c1dc89d2bfe4ef98592336ee203bec\": [0, 42, 194],\n+ \"group__gsm0808.html#ga74c1dc89d2bfe4ef98592336ee203bec\": [0, 42, 195],\n \"group__gsm0808.html#ga79a95f4a2d0f67055b7ac2862b789c49\": [0, 42, 112],\n \"group__gsm0808.html#ga7adf7c01146410533468908421984543\": [0, 42, 28],\n \"group__gsm0808.html#ga7bc35dd86262c0cd1601a386f53062cb\": [0, 42, 56],\n \"group__gsm0808.html#ga7dade3dea5d93c935bd02cb28c63b508\": [0, 42, 83],\n \"group__gsm0808.html#ga7fa4c18cb6f5da65effabf801f471db7\": [0, 42, 141],\n \"group__gsm0808.html#ga812216127985fe502c8e5d5e32b02709\": [0, 42, 145],\n \"group__gsm0808.html#ga827c2f70cd67127462c6657faf174d6d\": [0, 42, 115],\n@@ -168,14 +167,15 @@\n \"group__gsm0808.html#gac86ccd3add953723f8f961cc8884c3b0\": [0, 42, 186],\n \"group__gsm0808.html#gac8b19b05b28f839bdd95820e42da7320\": [0, 42, 147],\n \"group__gsm0808.html#gac9cdd72ce8eeb877aedd06cdb0fabd7a\": [0, 42, 57],\n \"group__gsm0808.html#gacc48e4d88d69d46ca7f335e027de01a1\": [0, 42, 146],\n \"group__gsm0808.html#gacc69231ed3f069f750d49c9ac256e973\": [0, 42, 184],\n \"group__gsm0808.html#gacccf829582b35f4e8a5a0d4f4e43e216\": [0, 42, 51],\n \"group__gsm0808.html#gacd28f0543c8bffde8de19549c962ae54\": [0, 42, 33],\n+ \"group__gsm0808.html#gace4de9930729e305e0dc914eacbd8893\": [0, 42, 165],\n \"group__gsm0808.html#gad090100ed13372865185529fe66ed868\": [0, 42, 119],\n \"group__gsm0808.html#gad12d0be4a9b4dd0c313b143127cb4f63\": [0, 42, 81],\n \"group__gsm0808.html#gad62af29016984118713fba663a3d2d32\": [0, 42, 98],\n \"group__gsm0808.html#gad9e1cdf27415b215bf8f924efe8399a0\": [0, 42, 3],\n \"group__gsm0808.html#gada543d8ee0864a60becb67dd6da274d4\": [0, 42, 101],\n \"group__gsm0808.html#gada5bcdf1e5e6b2158595b6f41afd53ef\": [0, 42, 65],\n \"group__gsm0808.html#gadbc66edc7a3158e62d91168bbe3de86d\": [0, 42, 78],\n"}]}, {"source1": "./usr/share/doc/libosmocore/gb/html/search/all_4.js", "source2": "./usr/share/doc/libosmocore/gb/html/search/all_4.js", "unified_diff": null, "details": [{"source1": "js-beautify {}", "source2": "js-beautify {}", "unified_diff": "@@ -1,62 +1,62 @@\n var searchData = [\n ['_5f_5fadd_5ftimer_0', ['__add_timer', ['../../../core/html/group__timer.html#ga372d9a79777dbdec72e7a19476111b63', 1, ]]],\n ['_5f_5fattribute_5f_5f_1', ['__attribute__', ['../../../gsm/html/group__gsm0808.html#gabe083297fecd14a3d87225c49b69fe88', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__08__08_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__rsl.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__oml.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__gad.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__23__041_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__25__415_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__44__004_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__44__060_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__44__318_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__48__049_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__bssmap__le.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/ipaccess_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__bssmap__le.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__oml.html#ga9373b3642341c610c476f88db967e8c7', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__04__14_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__gad.html#ga19aa011d1747f2db90dddb15c952713d', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__bssmap__le.html#ga3fe817b2261c57a83bfda4cda78ffa3f', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__rsl.html#gac086f463f97bf55a20bd4ba2d01b54bb', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__tlv.html#ga9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor))(Global Namespace)'],\n ['../../../gsm/html/group__auth.html#ga9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor))(Global Namespace)'],\n ['../../../gsm/html/group__crypto.html#ga9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor))(Global Namespace)'],\n ['../../../vty/html/group__command.html#ga9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor))(Global Namespace)'],\n ['../gprs__msgb_8h.html#a07073f09276463198618cb422cc42912', 1, '__attribute__((packed, may_alias)): gprs_msgb.h'],\n ['../group__libgb.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed)): gsm_08_16.h'],\n ['../group__libgb.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed)): gsm_08_18.h'],\n ['../bssgp__bvc__fsm_8c.html#a9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor)): bssgp_bvc_fsm.c'],\n ['../group__libgb.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed)): frame_relay.c'],\n ['../group__libgb.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed)): gprs_ns2_frgre.c'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__04__12_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/structabis__rsl__rll__hdr.html#aa02bc71e017398cd5c51b859dcc2af82', 1, 'abis_rsl_rll_hdr::__attribute__'],\n ['../../../gsm/html/structdtap__header.html#a6e2b5617f01acef998b0c2f7c4ee9a32', 1, 'dtap_header::__attribute__'],\n ['../../../gsm/html/unionabis__rsl__chan__nr.html#a1c6785f8bda4e33238f895f1b583a30b', 1, 'abis_rsl_chan_nr::__attribute__()'],\n ['../../../gsm/html/unionabis__rsl__link__id.html#a80d06146c6fd312706ec51605bfbc57b', 1, 'abis_rsl_link_id::__attribute__()'],\n ['../../../gsm/html/structgsm48__chan__desc.html#a3f6749d653fefe2ffdd78d78e3f0eed5', 1, 'gsm48_chan_desc::__attribute__()'],\n ['../group__libgb.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed)): gprs_ns_frgre.c'],\n ['../gprs__ns2__vc__fsm_8c.html#a9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor)): gprs_ns2_vc_fsm.c'],\n ['../gprs__ns2__sns_8c.html#a9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor)): gprs_ns2_sns.c'],\n ['../../../gsm/html/group__oml.html#gab90e830f0eddb6080edc75cf603f2634', 1, '__attribute__(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga00df7213639d8b54dbb889fdf1124ece', 1, '__attribute__(Global Namespace)'],\n+ ['../../../gsm/html/group__gsm0808.html#gace4de9930729e305e0dc914eacbd8893', 1, '__attribute__(Global Namespace)'],\n ['../../../gsm/html/group__bssmap__le.html#gad27182647f0676ba236c59b17d7adff6', 1, '__attribute__(Global Namespace)'],\n ['../../../gsm/html/group__rsl.html#ga428e812521d237f352d3eeff0a18398b', 1, '__attribute__(Global Namespace)'],\n ['../group__libgb.html#gafd72c4e7b23da74bb91bf4ecddb3a3d9', 1, '__attribute__: gsm_08_16.h'],\n ['../gsm__08__18_8h.html#a752f88c021ab1cf59a162c9aca2c5049', 1, '__attribute__: gsm_08_18.h'],\n ['../gprs__ns2__frgre_8c.html#ab33cdbca36274dfa2ccf4934ba102760', 1, '__attribute__: gprs_ns2_frgre.c'],\n ['../../../core/html/group__osmo__io.html#gaa811d40f7e27f5bf851308f829f85506', 1, '__attribute__((constructor(103)))(Global Namespace)'],\n ['../../../core/html/group__sercomm.html#gaf9aace1b44b73111e15aa39f06f43456', 1, '__attribute__((weak))(Global Namespace)'],\n ['../../../core/html/group__stats.html#ga9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor))(Global Namespace)'],\n ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)']\n+ ['../../../gsm/html/gsm__03__41_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__04__08_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__04__08__gprs_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__04__11_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)']\n ]],\n ['_5f_5fhlist_5fdel_2', ['__hlist_del', ['../../../core/html/group__linuxlist.html#ga167c5c3fe3b88a3e499210033585c6d8', 1, ]]],\n ['_5f_5fllist_5fadd_3', ['__llist_add', ['../../../core/html/group__linuxlist.html#ga27748bed605feed610e4cabb92cc69a8', 1, ]]],\n ['_5f_5fllist_5fdel_4', ['__llist_del', ['../../../core/html/group__linuxlist.html#gafd6d2db9c63110be04db5421e66a64d6', 1, ]]],\n ['_5f_5fllist_5fsplice_5', ['__llist_splice', ['../../../core/html/group__linuxlist.html#ga86930ef85d10c1acd97d858354bd5895', 1, ]]],\n ['_5fa5_5f1_6', ['_a5_1', ['../../../gsm/html/group__a5.html#ga1fa3ceb5aa7339737aeab03db7ae74db', 1, ]]],\n ['_5fa5_5f12_5fclock_7', ['_a5_12_clock', ['../../../gsm/html/group__a5.html#ga79fe3aa16d75aa56c9e9f24f95a1491d', 1, ]]],\n"}]}, {"source1": "./usr/share/doc/libosmocore/gb/html/search/functions_0.js", "source2": "./usr/share/doc/libosmocore/gb/html/search/functions_0.js", "unified_diff": null, "details": [{"source1": "js-beautify {}", "source2": "js-beautify {}", "unified_diff": "@@ -1,12 +1,12 @@\n var searchData = [\n ['_5f_5fadd_5ftimer_0', ['__add_timer', ['../../../core/html/group__timer.html#ga372d9a79777dbdec72e7a19476111b63', 1, ]]],\n ['_5f_5fattribute_5f_5f_1', ['__attribute__', ['../gprs__msgb_8h.html#a07073f09276463198618cb422cc42912', 1, '__attribute__((packed, may_alias)): gprs_msgb.h'],\n ['../../../gsm/html/group__bssmap__le.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/ipaccess_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__bssmap__le.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__oml.html#ga9373b3642341c610c476f88db967e8c7', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__gad.html#ga19aa011d1747f2db90dddb15c952713d', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__bssmap__le.html#ga3fe817b2261c57a83bfda4cda78ffa3f', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__rsl.html#gac086f463f97bf55a20bd4ba2d01b54bb', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__tlv.html#ga9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor))(Global Namespace)'],\n ['../../../gsm/html/group__auth.html#ga9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor))(Global Namespace)'],\n@@ -18,36 +18,36 @@\n ['../bssgp__bvc__fsm_8c.html#a9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor)): bssgp_bvc_fsm.c'],\n ['../group__libgb.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed)): frame_relay.c'],\n ['../group__libgb.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed)): gprs_ns2_frgre.c'],\n ['../gprs__ns2__sns_8c.html#a9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor)): gprs_ns2_sns.c'],\n ['../gprs__ns2__vc__fsm_8c.html#a9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor)): gprs_ns2_vc_fsm.c'],\n ['../group__libgb.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed)): gprs_ns_frgre.c'],\n ['../../../gsm/html/unionabis__rsl__chan__nr.html#a1c6785f8bda4e33238f895f1b583a30b', 1, 'abis_rsl_chan_nr::__attribute__()'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__()(Global Namespace)'],\n+ ['../../../gsm/html/gsm__03__41_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__()(Global Namespace)'],\n ['../../../gsm/html/unionabis__rsl__link__id.html#a80d06146c6fd312706ec51605bfbc57b', 1, 'abis_rsl_link_id::__attribute__()'],\n ['../../../gsm/html/structgsm48__chan__desc.html#a3f6749d653fefe2ffdd78d78e3f0eed5', 1, 'gsm48_chan_desc::__attribute__()'],\n ['../../../core/html/group__osmo__io.html#gaa811d40f7e27f5bf851308f829f85506', 1, '__attribute__((constructor(103)))(Global Namespace)'],\n ['../../../core/html/group__sercomm.html#gaf9aace1b44b73111e15aa39f06f43456', 1, '__attribute__((weak))(Global Namespace)'],\n ['../../../core/html/group__stats.html#ga9ed16867a9394d9ccf1132194edae298', 1, '__attribute__((constructor))(Global Namespace)'],\n ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__48__049_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__04__08_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__04__08__gprs_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__04__11_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__04__12_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__08__08_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__44__318_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__44__060_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__44__004_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__25__415_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n+ ['../../../gsm/html/gsm__23__041_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__gad.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__oml.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n ['../../../gsm/html/group__rsl.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)']\n+ ['../../../gsm/html/gsm__04__14_8h.html#ga4bd1a4f2920427cb38f01af2f0cc985c', 1, '__attribute__((packed))(Global Namespace)']\n ]],\n ['_5f_5fhlist_5fdel_2', ['__hlist_del', ['../../../core/html/group__linuxlist.html#ga167c5c3fe3b88a3e499210033585c6d8', 1, ]]],\n ['_5f_5fllist_5fadd_3', ['__llist_add', ['../../../core/html/group__linuxlist.html#ga27748bed605feed610e4cabb92cc69a8', 1, ]]],\n ['_5f_5fllist_5fdel_4', ['__llist_del', ['../../../core/html/group__linuxlist.html#gafd6d2db9c63110be04db5421e66a64d6', 1, ]]],\n ['_5f_5fllist_5fsplice_5', ['__llist_splice', ['../../../core/html/group__linuxlist.html#ga86930ef85d10c1acd97d858354bd5895', 1, ]]],\n ['_5fa5_5f1_6', ['_a5_1', ['../../../gsm/html/group__a5.html#ga1fa3ceb5aa7339737aeab03db7ae74db', 1, ]]],\n ['_5fa5_5f12_5fclock_7', ['_a5_12_clock', ['../../../gsm/html/group__a5.html#ga79fe3aa16d75aa56c9e9f24f95a1491d', 1, ]]],\n"}]}, {"source1": "./usr/share/doc/libosmocore/gb/html/search/variables_0.js", "source2": "./usr/share/doc/libosmocore/gb/html/search/variables_0.js", "unified_diff": null, "details": [{"source1": "js-beautify {}", "source2": "js-beautify {}", "unified_diff": "@@ -1,15 +1,15 @@\n var searchData = [\n ['_5f_5fattribute_5f_5f_0', ['__attribute__', ['../../../gsm/html/structdtap__header.html#a6e2b5617f01acef998b0c2f7c4ee9a32', 1, 'dtap_header::__attribute__'],\n ['../gprs__ns2__frgre_8c.html#ab33cdbca36274dfa2ccf4934ba102760', 1, '__attribute__: gprs_ns2_frgre.c'],\n ['../gsm__08__18_8h.html#a752f88c021ab1cf59a162c9aca2c5049', 1, '__attribute__: gsm_08_18.h'],\n ['../group__libgb.html#gafd72c4e7b23da74bb91bf4ecddb3a3d9', 1, '__attribute__: gsm_08_16.h'],\n ['../../../gsm/html/group__rsl.html#ga428e812521d237f352d3eeff0a18398b', 1, '__attribute__(Global Namespace)'],\n ['../../../gsm/html/group__bssmap__le.html#gad27182647f0676ba236c59b17d7adff6', 1, '__attribute__(Global Namespace)'],\n- ['../../../gsm/html/group__gsm0808.html#ga00df7213639d8b54dbb889fdf1124ece', 1, '__attribute__(Global Namespace)'],\n+ ['../../../gsm/html/group__gsm0808.html#gace4de9930729e305e0dc914eacbd8893', 1, '__attribute__(Global Namespace)'],\n ['../../../gsm/html/group__oml.html#gab90e830f0eddb6080edc75cf603f2634', 1, '__attribute__(Global Namespace)'],\n ['../../../gsm/html/structabis__rsl__rll__hdr.html#aa02bc71e017398cd5c51b859dcc2af82', 1, 'abis_rsl_rll_hdr::__attribute__']\n ]],\n ['_5fcomp128_5ftable_1', ['_comp128_table', ['../../../gsm/html/group__auth.html#ga1e4a5f73e3ef0da731c7c893e6a616bf', 1, ]]],\n ['_5fdata_2', ['_data', ['../../../core/html/structmsgb.html#a61fa77b4345e3a6db6d58a39c5e83177', 1, 'msgb']]],\n ['_5flast_5fosmovty_5fnode_3', ['_LAST_OSMOVTY_NODE', ['../../../vty/html/group__command.html#gga6a276b85e2da28c5f9c3dbce61c55682aad50ebd93ab551be0d996e818bf28fe6', 1, ]]],\n ['_5flog_5fctx_5fcount_4', ['_LOG_CTX_COUNT', ['../../../core/html/group__logging.html#gga0b31990f947ded850132fde88eac7269a5b769eab13b25bf7b21a07da3cb4091e', 1, ]]],\n"}]}, {"source1": "./usr/share/doc/libosmocore/gb/html/structosmo__fr__link.html", "source2": "./usr/share/doc/libosmocore/gb/html/structosmo__fr__link.html", "unified_diff": "@@ -128,15 +128,15 @@\n  \n struct llist_head dlc_list\n  \n int(* unknown_dlc_rx_cb )(void *cb_data, struct msgb *msg)\n  \n voidunknown_dlc_rx_cb_data\n  \n-int(* tx_cb )(void *data, struct msgb *msg)\n+int(* tx_cb )(void *data, struct msgb *msg)\n  \n void(* status_cb )(struct osmo_fr_link *link, void *cb_data, bool active)\n  \n voidcb_data\n  \n \n

Field Documentation

\n@@ -399,15 +399,15 @@\n \n

◆ tx_cb

\n \n
\n
\n \n \n- \n+ \n \n
int(* osmo_fr_link::tx_cb) (void *data, struct msgb *msg)int(* osmo_fr_link::tx_cb) (void *data, struct msgb *msg)
\n
\n \n

Referenced by gprs_ns2_fr_bind(), osmo_fr_tx_dlc(), tx_lmi_q933_status(), and tx_lmi_q933_status_enq().

\n \n
\n"}]}]}]}]}