|
| 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