libosmo-sigtran 2.2.1.64-e866 Osmocom SIGTRAN library

Functions
sccp_helpers.h File Reference
`#include <unistd.h>`
`#include <osmocom/core/msgb.h>`
`#include <osmocom/sigtran/sccp_sap.h>`

Go to the source code of this file.

## Functions
int | osmo_sccp_tx_unitdata (struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, const uint8_t *data, unsigned int len)
int | osmo_sccp_tx_unitdata_msg (struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, struct msgb *msg)
void | osmo_sccp_make_addr_pc_ssn (struct osmo_sccp_addr *addr, uint32_t pc, uint32_t ssn)
void | osmo_sccp_addr_set_ssn (struct osmo_sccp_addr *addr, uint32_t ssn)
int | osmo_sccp_tx_unitdata_ranap (struct osmo_sccp_user *scu, uint32_t src_point_code, uint32_t dst_point_code, const uint8_t *data, unsigned int len)
int | osmo_sccp_tx_conn_req (struct osmo_sccp_user *scu, uint32_t conn_id, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, const uint8_t *data, unsigned int len)
int | osmo_sccp_tx_conn_req_msg (struct osmo_sccp_user *scu, uint32_t conn_id, const struct osmo_sccp_addr *calling_addr, const struct osmo_sccp_addr *called_addr, struct msgb *msg)
int | osmo_sccp_tx_data (struct osmo_sccp_user *scu, uint32_t conn_id, const uint8_t *data, unsigned int len)
int | osmo_sccp_tx_data_msg (struct osmo_sccp_user *scu, uint32_t conn_id, struct msgb *msg)
int | osmo_sccp_tx_disconn (struct osmo_sccp_user *scu, uint32_t conn_id, const struct osmo_sccp_addr *resp_addr, uint32_t cause)
int | osmo_sccp_tx_disconn_data (struct osmo_sccp_user *scu, uint32_t conn_id, const struct osmo_sccp_addr *resp_addr, uint32_t cause, const uint8_t *data, size_t len)
int | osmo_sccp_tx_conn_resp_msg (struct osmo_sccp_user *scu, uint32_t conn_id, const struct osmo_sccp_addr *resp_addr, struct msgb *msg)
int | osmo_sccp_tx_conn_resp (struct osmo_sccp_user *scu, uint32_t conn_id, const struct osmo_sccp_addr *resp_addr, const uint8_t *data, unsigned int len)
char * | osmo_sccp_gt_dump (const struct osmo_sccp_gt *gt)
char * | osmo_sccp_addr_dump (const struct osmo_sccp_addr *addr)
int | osmo_sccp_inst_addr_to_str_buf (char *buf, size_t buf_len, const struct osmo_sccp_instance *sccp, const struct osmo_sccp_addr *addr)
char * | osmo_sccp_inst_addr_to_str_c (void *ctx, const struct osmo_sccp_instance *sccp, const struct osmo_sccp_addr *addr)
int | osmo_sccp_addr_to_str_buf (char *buf, size_t buf_len, const struct osmo_ss7_instance *ss7, const struct osmo_sccp_addr *addr)
char * | osmo_sccp_addr_to_str_c (void *ctx, const struct osmo_ss7_instance *ss7, const struct osmo_sccp_addr *addr)
int | osmo_sccp_addr_to_id_buf (char *buf, size_t buf_len, const struct osmo_ss7_instance *ss7, const struct osmo_sccp_addr *addr)
| like osmo_sccp_addr_to_str_buf, but using only characters passing osmo_identifier_valid(). More...
char * | osmo_sccp_addr_to_id_c (void *ctx, const struct osmo_ss7_instance *ss7, const struct osmo_sccp_addr *addr)
bool | osmo_sccp_conn_id_exists (const struct osmo_sccp_instance *inst, uint32_t id)
char * | osmo_sccp_addr_name (const struct osmo_ss7_instance *ss7, const struct osmo_sccp_addr *addr)
char * | osmo_sccp_inst_addr_name (const struct osmo_sccp_instance *sccp, const struct osmo_sccp_addr *addr)

## Function Documentation

## ◆ osmo_sccp_addr_dump()

char * osmo_sccp_addr_dump | ( | const struct osmo_sccp_addr * | addr | ) |

References append_to_buf(), osmo_sccp_addr::gt, osmo_sccp_gt::gti, osmo_sccp_addr::ip, OSMO_SCCP_ADDR_T_GT, OSMO_SCCP_ADDR_T_IPv4, OSMO_SCCP_ADDR_T_IPv6, OSMO_SCCP_ADDR_T_PC, OSMO_SCCP_ADDR_T_SSN, osmo_sccp_gt_dump(), OSMO_SCCP_GTI_NO_GT, osmo_sccp_addr::pc, osmo_sccp_addr::presence, osmo_sccp_addr::ri, osmo_sccp_addr::ssn, osmo_sccp_addr::v4, and osmo_sccp_addr::v6.

Referenced by sccp_addr_to_sua().

## ◆ osmo_sccp_addr_name()

char * osmo_sccp_addr_name | ( | const struct osmo_ss7_instance * | ss7,
|  | const struct osmo_sccp_addr * | addr
| ) |  |

References osmo_sccp_addr_to_str_buf().

Referenced by osmo_sccp_inst_addr_name(), and osmo_sccp_user_name().

## ◆ osmo_sccp_addr_set_ssn()

void osmo_sccp_addr_set_ssn | ( | struct osmo_sccp_addr * | addr,
|  | uint32_t | ssn
| ) |  |

References OSMO_SCCP_ADDR_T_SSN, osmo_sccp_addr::presence, osmo_sccp_addr::ssn, and ssn.

## ◆ osmo_sccp_addr_to_id_buf()

int osmo_sccp_addr_to_id_buf | ( | char * | buf,
|  | size_t | buf_len,
|  | const struct osmo_ss7_instance * | ss7,
|  | const struct osmo_sccp_addr * | addr
| ) |  |

like osmo_sccp_addr_to_str_buf, but using only characters passing osmo_identifier_valid().

Useful for FSM and CTRL IDs.

The advantage over using osmo_sccp_addr_to_str_buf() followed by osmo_identifier_sanitize_buf() is that here, the address elements are separated by ':', while osmo_identifier_sanitize_buf() would replace all characters with the same, e.g. '-'.

References sccp_addr_to_str_buf().

Referenced by osmo_sccp_addr_to_id_c().

## ◆ osmo_sccp_addr_to_id_c()

char * osmo_sccp_addr_to_id_c | ( | void * | ctx,
|  | const struct osmo_ss7_instance * | ss7,
|  | const struct osmo_sccp_addr * | addr
| ) |  |

References osmo_sccp_addr_to_id_buf().

## ◆ osmo_sccp_addr_to_str_buf()

int osmo_sccp_addr_to_str_buf | ( | char * | buf,
|  | size_t | buf_len,
|  | const struct osmo_ss7_instance * | ss7,
|  | const struct osmo_sccp_addr * | addr
| ) |  |

References sccp_addr_to_str_buf().

Referenced by osmo_sccp_addr_name(), osmo_sccp_addr_to_str_c(), and osmo_sccp_inst_addr_to_str_buf().

## ◆ osmo_sccp_addr_to_str_c()

char * osmo_sccp_addr_to_str_c | ( | void * | ctx,
|  | const struct osmo_ss7_instance * | ss7,
|  | const struct osmo_sccp_addr * | addr
| ) |  |

References osmo_sccp_addr_to_str_buf().

## ◆ osmo_sccp_conn_id_exists()

bool osmo_sccp_conn_id_exists | ( | const struct osmo_sccp_instance * | inst,
|  | uint32_t | id
| ) |  |

References sccp_find_conn_by_id().

Referenced by osmo_sccp_tx_conn_resp_msg(), osmo_sccp_tx_data(), and osmo_sccp_tx_disconn_data().

## ◆ osmo_sccp_gt_dump()

char * osmo_sccp_gt_dump | ( | const struct osmo_sccp_gt * | gt | ) |

References append_to_buf(), osmo_sccp_gt::digits, osmo_sccp_gt::gti, osmo_sccp_gt::nai, osmo_sccp_gt::npi, OSMO_SCCP_GTI_NAI_ONLY, OSMO_SCCP_GTI_NO_GT, OSMO_SCCP_GTI_TT_NPL_ENC, OSMO_SCCP_GTI_TT_NPL_ENC_NAI, OSMO_SCCP_GTI_TT_ONLY, and osmo_sccp_gt::tt.

Referenced by osmo_sccp_addr_dump(), and sccp_addr_to_str_buf().

## ◆ osmo_sccp_inst_addr_name()

char * osmo_sccp_inst_addr_name | ( | const struct osmo_sccp_instance * | sccp,
|  | const struct osmo_sccp_addr * | addr
| ) |  |

References NULL, osmo_sccp_addr_name(), and osmo_sccp_instance::ss7.

## ◆ osmo_sccp_inst_addr_to_str_buf()

int osmo_sccp_inst_addr_to_str_buf | ( | char * | buf,
|  | size_t | buf_len,
|  | const struct osmo_sccp_instance * | sccp,
|  | const struct osmo_sccp_addr * | addr
| ) |  |

References NULL, osmo_sccp_addr_to_str_buf(), and osmo_sccp_instance::ss7.

Referenced by osmo_sccp_inst_addr_to_str_c().

## ◆ osmo_sccp_inst_addr_to_str_c()

char * osmo_sccp_inst_addr_to_str_c | ( | void * | ctx,
|  | const struct osmo_sccp_instance * | sccp,
|  | const struct osmo_sccp_addr * | addr
| ) |  |

References osmo_sccp_inst_addr_to_str_buf().

## ◆ osmo_sccp_make_addr_pc_ssn()

void osmo_sccp_make_addr_pc_ssn | ( | struct osmo_sccp_addr * | addr,
|  | uint32_t | pc,
|  | uint32_t | ssn
| ) |  |

References OSMO_SCCP_ADDR_T_PC, OSMO_SCCP_ADDR_T_SSN, OSMO_SCCP_RI_SSN_PC, osmo_sccp_addr::pc, osmo_sccp_addr::presence, and osmo_sccp_addr::ssn.

Referenced by osmo_sccp_local_addr_by_instance(), osmo_sccp_tx_unitdata_ranap(), and osmo_sccp_user_name().

## ◆ osmo_sccp_tx_conn_req()

int osmo_sccp_tx_conn_req | ( | struct osmo_sccp_user * | scu,
|  | uint32_t | conn_id,
|  | const struct osmo_sccp_addr * | calling_addr,
|  | const struct osmo_sccp_addr * | called_addr,
|  | const uint8_t * | data,
|  | unsigned int | len
| ) |  |

References osmo_scu_connect_param::called_addr, osmo_scu_connect_param::calling_addr, osmo_scu_connect_param::conn_id, osmo_scu_prim::connect, data, len, osmo_scu_prim::oph, osmo_sccp_user_sap_down(), OSMO_SCU_PRIM_N_CONNECT, osmo_scu_connect_param::sccp_class, SCCP_SAP_USER, scu_msgb_alloc(), and osmo_scu_prim::u.

Referenced by osmo_sccp_tx_conn_req_msg().

## ◆ osmo_sccp_tx_conn_req_msg()

int osmo_sccp_tx_conn_req_msg | ( | struct osmo_sccp_user * | scu,
|  | uint32_t | conn_id,
|  | const struct osmo_sccp_addr * | calling_addr,
|  | const struct osmo_sccp_addr * | called_addr,
|  | struct msgb * | msg
| ) |  |

References osmo_sccp_tx_conn_req().

## ◆ osmo_sccp_tx_conn_resp()

int osmo_sccp_tx_conn_resp | ( | struct osmo_sccp_user * | scu,
|  | uint32_t | conn_id,
|  | const struct osmo_sccp_addr * | resp_addr,
|  | const uint8_t * | data,
|  | unsigned int | len
| ) |  |

References data, len, osmo_sccp_tx_conn_resp_msg(), and scu_msgb_alloc().

## ◆ osmo_sccp_tx_conn_resp_msg()

int osmo_sccp_tx_conn_resp_msg | ( | struct osmo_sccp_user * | scu,
|  | uint32_t | conn_id,
|  | const struct osmo_sccp_addr * | resp_addr,
|  | struct msgb * | msg
| ) |  |

References osmo_scu_connect_param::conn_id, osmo_scu_prim::connect, osmo_sccp_user::inst, LOGPSCU, osmo_scu_prim::oph, osmo_sccp_conn_id_exists(), osmo_sccp_user_sap_down(), OSMO_SCU_PRIM_N_CONNECT, osmo_scu_connect_param::responding_addr, osmo_scu_connect_param::sccp_class, SCCP_SAP_USER, and osmo_scu_prim::u.

Referenced by osmo_sccp_tx_conn_resp().

## ◆ osmo_sccp_tx_data()

int osmo_sccp_tx_data | ( | struct osmo_sccp_user * | scu,
|  | uint32_t | conn_id,
|  | const uint8_t * | data,
|  | unsigned int | len
| ) |  |

References osmo_scu_data_param::conn_id, osmo_scu_prim::data, data, osmo_sccp_user::inst, len, LOGPSCU, osmo_scu_prim::oph, osmo_sccp_conn_id_exists(), osmo_sccp_user_sap_down(), OSMO_SCU_PRIM_N_DATA, SCCP_SAP_USER, scu_msgb_alloc(), and osmo_scu_prim::u.

Referenced by osmo_sccp_tx_data_msg(), sccp_conn_opt_data_send_cache(), and xua_opt_data_length_lim().

## ◆ osmo_sccp_tx_data_msg()

int osmo_sccp_tx_data_msg | ( | struct osmo_sccp_user * | scu,
|  | uint32_t | conn_id,
|  | struct msgb * | msg
| ) |  |

References osmo_sccp_tx_data().

## ◆ osmo_sccp_tx_disconn()

int osmo_sccp_tx_disconn | ( | struct osmo_sccp_user * | scu,
|  | uint32_t | conn_id,
|  | const struct osmo_sccp_addr * | resp_addr,
|  | uint32_t | cause
| ) |  |

References NULL, and osmo_sccp_tx_disconn_data().

## ◆ osmo_sccp_tx_disconn_data()

int osmo_sccp_tx_disconn_data | ( | struct osmo_sccp_user * | scu,
|  | uint32_t | conn_id,
|  | const struct osmo_sccp_addr * | resp_addr,
|  | uint32_t | cause,
|  | const uint8_t * | data,
|  | size_t | len
| ) |  |

References osmo_scu_disconn_param::cause, osmo_scu_disconn_param::conn_id, data, osmo_scu_prim::disconnect, osmo_sccp_user::inst, len, LOGPSCU, osmo_scu_prim::oph, osmo_scu_disconn_param::originator, osmo_sccp_conn_id_exists(), OSMO_SCCP_ORIG_NS_USER, osmo_sccp_user_sap_down(), OSMO_SCU_PRIM_N_DISCONNECT, osmo_scu_disconn_param::responding_addr, SCCP_SAP_USER, scu_msgb_alloc(), and osmo_scu_prim::u.

Referenced by osmo_sccp_tx_disconn().

## ◆ osmo_sccp_tx_unitdata()

int osmo_sccp_tx_unitdata | ( | struct osmo_sccp_user * | scu,
|  | const struct osmo_sccp_addr * | calling_addr,
|  | const struct osmo_sccp_addr * | called_addr,
|  | const uint8_t * | data,
|  | unsigned int | len
| ) |  |

References osmo_scu_unitdata_param::called_addr, osmo_scu_unitdata_param::calling_addr, data, osmo_scu_unitdata_param::in_sequence_control, len, osmo_scu_prim::oph, osmo_sccp_user_sap_down(), OSMO_SCU_PRIM_N_UNITDATA, OSMO_SCU_UNITDATA_REQ_P_SEQUENCE_CONTROL_NOT_PRESENT, SCCP_SAP_USER, scu_msgb_alloc(), osmo_scu_prim::u, and osmo_scu_prim::unitdata.

Referenced by osmo_sccp_tx_unitdata_msg(), and osmo_sccp_tx_unitdata_ranap().

## ◆ osmo_sccp_tx_unitdata_msg()

int osmo_sccp_tx_unitdata_msg | ( | struct osmo_sccp_user * | scu,
|  | const struct osmo_sccp_addr * | calling_addr,
|  | const struct osmo_sccp_addr * | called_addr,
|  | struct msgb * | msg
| ) |  |

References osmo_sccp_tx_unitdata().

## ◆ osmo_sccp_tx_unitdata_ranap()

int osmo_sccp_tx_unitdata_ranap | ( | struct osmo_sccp_user * | scu,
|  | uint32_t | src_point_code,
|  | uint32_t | dst_point_code,
|  | const uint8_t * | data,
|  | unsigned int | len
| ) |  |

References data, len, osmo_sccp_make_addr_pc_ssn(), OSMO_SCCP_SSN_RANAP, and osmo_sccp_tx_unitdata().