|
static bool | nsvc_is_not_used (const struct gprs_nsvc *nsvc) |
|
struct msgb * | gprs_ns_msgb_alloc (void) |
|
static void | ns_set_state_with_log (struct gprs_nsvc *nsvc, uint32_t state, bool is_remote, const char *file, unsigned line) |
|
struct gprs_nsvc * | gprs_nsvc_by_nsvci (struct gprs_ns_inst *nsi, uint16_t nsvci) |
| Lookup struct gprs_nsvc based on NSVCI.
|
|
struct gprs_nsvc * | gprs_nsvc_by_nsei (struct gprs_ns_inst *nsi, uint16_t nsei) |
| Lookup struct gprs_nsvc based on NSEI.
|
|
static struct gprs_nsvc * | gprs_active_nsvc_by_nsei (struct gprs_ns_inst *nsi, uint16_t nsei, uint16_t bvci) |
| Determine active NS-VC for given NSEI + BVCI.
|
|
struct gprs_nsvc * | gprs_nsvc_by_rem_addr (struct gprs_ns_inst *nsi, const struct sockaddr_in *sin) |
| Lookup NS-VC based on specified remote peer socket addr.
|
|
static void | gprs_ns_timer_cb (void *data) |
|
struct gprs_nsvc * | gprs_nsvc_create2 (struct gprs_ns_inst *nsi, uint16_t nsvci, uint8_t sig_weight, uint8_t data_weight) |
| Create a new NS-VC (Virtual Circuit) within given instance.
|
|
void | gprs_nsvc_delete (struct gprs_nsvc *nsvc) |
| Delete given NS-VC.
|
|
static void | ns_osmo_signal_dispatch (struct gprs_nsvc *nsvc, unsigned int signal, uint8_t cause) |
|
static void | ns_osmo_signal_dispatch_mismatch (struct gprs_nsvc *nsvc, struct msgb *msg, uint8_t pdu_type, uint8_t ie_type) |
|
static void | ns_osmo_signal_dispatch_replaced (struct gprs_nsvc *nsvc, struct gprs_nsvc *old_nsvc) |
|
const char * | gprs_ns_cause_str (enum ns_cause cause) |
| Obtain a human-readable string for NS cause value.
|
|
static int | nsip_sendmsg (struct gprs_nsvc *nsvc, struct msgb *msg) |
|
int | grps_ns_frgre_sendmsg (struct gprs_nsvc *nsvc, struct msgb *msg) |
|
static bool | ns_is_sns (uint8_t pdu_type) |
|
static int | gprs_ns_tx (struct gprs_nsvc *nsvc, struct msgb *msg) |
|
static int | gprs_ns_tx_simple (struct gprs_nsvc *nsvc, uint8_t pdu_type) |
|
int | gprs_ns_tx_reset (struct gprs_nsvc *nsvc, uint8_t cause) |
| Transmit a NS-RESET on a given NSVC.
|
|
int | gprs_ns_tx_status (struct gprs_nsvc *nsvc, uint8_t cause, uint16_t bvci, struct msgb *orig_msg) |
| Transmit a NS-STATUS on a given NSVC.
|
|
int | gprs_ns_tx_block (struct gprs_nsvc *nsvc, uint8_t cause) |
| Transmit a NS-BLOCK on a given NS-VC.
|
|
static int | gprs_ns_tx_block_ack (struct gprs_nsvc *nsvc) |
| Transmit a NS-BLOCK-ACK on a given NS-VC.
|
|
int | gprs_ns_tx_unblock (struct gprs_nsvc *nsvc) |
| Transmit a NS-UNBLOCK on a given NS-VC.
|
|
int | gprs_ns_tx_alive (struct gprs_nsvc *nsvc) |
| Transmit a NS-ALIVE on a given NS-VC.
|
|
int | gprs_ns_tx_alive_ack (struct gprs_nsvc *nsvc) |
| Transmit a NS-ALIVE-ACK on a given NS-VC.
|
|
static void | nsvc_start_timer (struct gprs_nsvc *nsvc, enum nsvc_timer_mode mode) |
|
static int | nsvc_timer_elapsed_ms (struct gprs_nsvc *nsvc) |
|
static int | gprs_ns_tx_reset_ack (struct gprs_nsvc *nsvc) |
|
int | gprs_ns_tx_sns_ack (struct gprs_nsvc *nsvc, uint8_t trans_id, uint8_t *cause, const struct gprs_ns_ie_ip4_elem *ip4_elems, unsigned int num_ip4_elems) |
| Encode + Transmit a SNS-ACK as per Section 9.3.1.
|
|
int | gprs_ns_tx_sns_config (struct gprs_nsvc *nsvc, bool end_flag, const struct gprs_ns_ie_ip4_elem *ip4_elems, unsigned int num_ip4_elems) |
| Encode + Transmit a SNS-CONFIG as per Section 9.3.4.
|
|
int | gprs_ns_tx_sns_config_ack (struct gprs_nsvc *nsvc, uint8_t *cause) |
| Encode + Transmit a SNS-CONFIG-ACK as per Section 9.3.5.
|
|
int | gprs_ns_tx_sns_size (struct gprs_nsvc *nsvc, bool reset_flag, uint16_t max_nr_nsvc, uint16_t *ip4_ep_nr, uint16_t *ip6_ep_nr) |
| Encode + transmit a SNS-SIZE as per Section 9.3.7.
|
|
int | gprs_ns_tx_sns_size_ack (struct gprs_nsvc *nsvc, uint8_t *cause) |
| Encode + Transmit a SNS-SIZE-ACK as per Section 9.3.8.
|
|
int | gprs_ns_sendmsg (struct gprs_ns_inst *nsi, struct msgb *msg) |
| High-level function for transmitting a NS-UNITDATA messsage.
|
|
static int | gprs_ns_rx_unitdata (struct gprs_nsvc *nsvc, struct msgb *msg) |
|
static int | gprs_ns_rx_status (struct gprs_nsvc *nsvc, struct msgb *msg) |
|
static int | gprs_nsvc_replace_if_found (uint16_t nsvci, struct gprs_nsvc **nsvc, struct gprs_nsvc **old_nsvc) |
|
static int | gprs_ns_rx_reset (struct gprs_nsvc **nsvc, struct msgb *msg) |
|
static int | gprs_ns_rx_reset_ack (struct gprs_nsvc **nsvc, struct msgb *msg) |
|
static int | gprs_ns_rx_block (struct gprs_nsvc *nsvc, struct msgb *msg) |
|
int | gprs_ns_vc_create (struct gprs_ns_inst *nsi, struct msgb *msg, struct gprs_nsvc *fallback_nsvc, struct gprs_nsvc **new_nsvc) |
| Create/get NS-VC independently from underlying transport layer.
|
|
int | gprs_ns_process_msg (struct gprs_ns_inst *nsi, struct msgb *msg, struct gprs_nsvc **nsvc) |
| Process NS message independently from underlying transport layer.
|
|
int | gprs_ns_rcvmsg (struct gprs_ns_inst *nsi, struct msgb *msg, struct sockaddr_in *saddr, enum gprs_ns_ll ll) |
| Receive incoming NS message from underlying transport layer.
|
|
char * | gprs_ns_ll_str_buf (char *buf, size_t buf_len, const struct gprs_nsvc *nsvc) |
|
const char * | gprs_ns_ll_str (const struct gprs_nsvc *nsvc) |
|
char * | gprs_ns_ll_str_c (const void *ctx, const struct gprs_nsvc *nsvc) |
|
void | gprs_ns_ll_copy (struct gprs_nsvc *nsvc, struct gprs_nsvc *other) |
|
void | gprs_ns_ll_clear (struct gprs_nsvc *nsvc) |
|
struct gprs_ns_inst * | gprs_ns_instantiate (gprs_ns_cb_t *cb, void *ctx) |
| Create a new GPRS NS instance.
|
|
void | gprs_ns_close (struct gprs_ns_inst *nsi) |
|
void | gprs_ns_destroy (struct gprs_ns_inst *nsi) |
| Destroy an entire NS instance.
|
|
static struct msgb * | read_nsip_msg (struct osmo_fd *bfd, int *error, struct sockaddr_in *saddr) |
|
static int | handle_nsip_read (struct osmo_fd *bfd) |
|
static int | handle_nsip_write (struct osmo_fd *bfd) |
|
static int | nsip_fd_cb (struct osmo_fd *bfd, unsigned int what) |
|
int | gprs_ns_nsip_listen (struct gprs_ns_inst *nsi) |
| Create a listening socket for GPRS NS/UDP/IP.
|
|
int | gprs_nsvc_reset (struct gprs_nsvc *nsvc, uint8_t cause) |
| Initiate a RESET procedure.
|
|
struct gprs_nsvc * | gprs_ns_nsip_connect (struct gprs_ns_inst *nsi, struct sockaddr_in *dest, uint16_t nsei, uint16_t nsvci) |
| Establish a NS connection (from the BSS) to the SGSN.
|
|
struct gprs_nsvc * | gprs_ns_nsip_connect_sns (struct gprs_ns_inst *nsi, struct sockaddr_in *dest, uint16_t nsei, uint16_t nsvci) |
| Establish a NS connection (from the BSS) to the SGSN using SNS auto-configuration.
|
|
void | gprs_ns_set_log_ss (int ss) |
|
char * | gprs_nsvc_state_append (char *s, struct gprs_nsvc *nsvc) |
| Append the nsvc state to a talloc string.
|
|
void | gprs_nsvc_start_test (struct gprs_nsvc *nsvc) |
| Start the ALIVE timer procedure in all NS-VCs part of this NS Instance.
|
|
void | gprs_start_alive_all_nsvcs (struct gprs_ns_inst *nsi) |
|
GPRS Networks Service (NS) messages on the Gb interface.
3GPP TS 08.16 version 8.0.1 Release 1999 / ETSI TS 101 299 V8.0.1 (2002-05) as well as its successor 3GPP TS 48.016