Loading...
Searching...
No Matches
gprs_ns2_nse Struct Reference

Structure repesenting a NSE. More...

`#include <gprs_ns2_internal.h>`

## Data Fields

uint16_t | nsei
struct gprs_ns2_inst * | nsi
| entry back to ns2_inst
struct llist_head | list
| llist entry for gprs_ns2_inst
struct llist_head | nsvc
| llist head to hold all nsvc
int | nsvc_count
| count all active NSVCs
bool | persistent
| true if this NSE was created by VTY or pcu socket)
bool | first
| true if this NSE wasn't yet alive at all.
bool | alive
| true if this NSE has at least one alive VC
enum gprs_ns2_ll | ll
| which link-layer are we based on?
enum gprs_ns2_dialect | dialect
| which dialect does this NSE speaks?
struct osmo_fsm_inst * | bss_sns_fi
uint32_t | sum_data_weight
| sum of all the data weight of alive NS-VCs
uint32_t | sum_sig_weight
| sum of all the signalling weight of alive NS-VCs
uint16_t | mtu
| MTU of a NS PDU.
bool | ip_sns_role_sgsn
| are we implementing the SGSN role?
struct rate_ctr_group * | ctrg
| NSE-wide statistics.
bool | freed
| recursive anchor
struct timespec | ts_alive_change
| when the NSE became alive or dead

## Detailed Description

Structure repesenting a NSE.

The BSS/PCU will only have a single NSE, while SGSN has one for each BSS/PCU

## Field Documentation

## alive

bool gprs_ns2_nse::alive

true if this NSE has at least one alive VC

Referenced by dump_nse(), gprs_ns2_free_nse(), gprs_ns2_recv_prim(), ns2_count_transfer_cap(), ns2_nse_update_mtu(), and ns2_sns_st_all_action().

## bss_sns_fi

struct osmo_fsm_inst* gprs_ns2_nse::bss_sns_fi

Referenced by gprs_ns2_free_nse(), gprs_ns2_free_nsvcs(), gprs_ns2_nse_sns_remote(), gprs_ns2_sns_add_bind(), gprs_ns2_sns_add_endpoint(), gprs_ns2_sns_count(), gprs_ns2_sns_del_bind(), gprs_ns2_sns_del_endpoint(), ns2_add_procedure(), ns2_nse_set_dialect(), ns2_sns_dump_vty(), ns2_sns_notify_alive(), ns2_sns_replace_nsvc(), ns2_sns_rx(), ns2_sns_st_all_action(), ns2_sns_st_configured_onenter(), ns2_sns_st_local_procedure(), ns2_sns_update_weights(), ns2_sns_write_vty(), ns2_tx_sns_ack(), ns2_tx_sns_config(), ns2_tx_sns_config_ack(), ns2_tx_sns_procedure(), ns2_tx_sns_size(), and ns2_tx_sns_size_ack().

## ctrg

struct rate_ctr_group* gprs_ns2_nse::ctrg

NSE-wide statistics.

Referenced by gprs_ns2_create_nse2(), and gprs_ns2_free_nse().

## dialect

enum gprs_ns2_dialect gprs_ns2_nse::dialect

which dialect does this NSE speaks?

Referenced by _config_write_ns_nse(), config_write_nsvc(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN_HIDDEN(), gprs_ns2_create_nse(), gprs_ns2_create_nse2(), gprs_ns2_ip_connect2(), gprs_ns2_sns_add_endpoint(), gprs_ns2_sns_count(), gprs_ns2_sns_del_endpoint(), handle_nsip_recvfrom(), ns2_create_vc(), ns2_ip_bind_connect(), ns2_nse_set_dialect(), ns2_sns_add_sns_default_binds(), ns2_st_unconfigured(), and ns_nse_nsvc_udp_cmds().

## first

bool gprs_ns2_nse::first

true if this NSE wasn't yet alive at all.

Will be true after the first status ind with NS_AFF_CAUSE_RECOVERY

Referenced by gprs_ns2_create_nse2(), and ns2_prim_status_ind().

## freed

bool gprs_ns2_nse::freed

recursive anchor

Referenced by gprs_ns2_free_nse(), and gprs_ns2_free_nsvcs().

## ip_sns_role_sgsn

bool gprs_ns2_nse::ip_sns_role_sgsn

are we implementing the SGSN role?

Referenced by _config_write_ns_nse(), gprs_ns2_create_nse2(), and ns2_nse_set_dialect().

## list

struct llist_head gprs_ns2_nse::list

llist entry for gprs_ns2_inst

Referenced by config_write_ns_nse(), dump_ns_entities(), gprs_n2_fr_mtu_chg_cb(), gprs_ns2_create_nse2(), gprs_ns2_free_bind(), gprs_ns2_free_nse(), gprs_ns2_free_nses(), gprs_ns2_nse_by_nsei(), ns2_sns_st_all_action_bss(), and ns2_sns_st_configured_onenter().

## ll

enum gprs_ns2_ll gprs_ns2_nse::ll

which link-layer are we based on?

Referenced by config_write_nsvc(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), dump_nse(), gprs_ns2_create_nse2(), gprs_ns2_fr_connect(), gprs_ns2_ll_str_buf(), gprs_ns2_sns_add_endpoint(), gprs_ns2_sns_count(), gprs_ns2_sns_del_endpoint(), ns2_create_vc(), ns2_create_vc_sns(), ns2_ip_bind_connect(), ns2_load_sharing(), ns2_sns_add_sns_default_binds(), ns2_vc_alloc(), and ns_nse_nsvc_udp_cmds().

## mtu

uint16_t gprs_ns2_nse::mtu

MTU of a NS PDU.

This is the lowest MTU of all NSVCs

Referenced by gprs_ns2_create_nse2(), ns2_nse_update_mtu(), and ns2_prim_status_ind().

## nsei

uint16_t gprs_ns2_nse::nsei

Referenced by _config_write_ns_nse(), _sns_failed(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), dump_nse(), gprs_ns2_create_nse2(), gprs_ns2_fr_connect(), gprs_ns2_nse_by_nsei(), gprs_ns2_nse_nsei(), ns2_create_vc(), ns2_ip_bind_connect(), ns2_nse_set_dialect(), ns2_prim_status_ind(), ns2_recv_unitdata(), ns2_sns_rx(), ns2_sns_st_all_action(), ns2_sns_st_local_procedure(), ns2_tx_reset(), ns2_tx_reset_ack(), ns2_tx_sns_ack(), ns2_tx_sns_config(), ns2_tx_sns_config_ack(), ns2_tx_sns_procedure(), ns2_tx_sns_size(), ns2_tx_sns_size_ack(), ns2_vc_rx(), ns_nse_nsvc_udp_cmds(), and vty_nse_check_sns().

## nsi

struct gprs_ns2_inst* gprs_ns2_nse::nsi

entry back to ns2_inst

Referenced by DEFUN(), DEFUN_HIDDEN(), dump_ns_entities(), gprs_ns2_create_nse(), gprs_ns2_create_nse2(), gprs_ns2_free_nses(), gprs_ns2_nse_by_nsei(), ns2_add_procedure(), ns2_prim_status_ind(), ns2_sns_st_all_action_bss(), ns2_sns_st_bss_config_bss(), ns2_sns_st_bss_config_sgsn(), ns2_sns_st_configured_onenter(), ns2_sns_st_local_procedure(), ns2_st_unconfigured(), ns2_vc_rx(), ns_inst_from_fi(), ns_sns_configured_timeout(), and start_test_procedure().

## nsvc

struct llist_head gprs_ns2_nse::nsvc

llist head to hold all nsvc

Referenced by _config_write_ns_nse(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), do_sns_change_weight(), do_sns_delete(), dump_nse(), gprs_ns2_create_nse2(), gprs_ns2_fr_connect2(), gprs_ns2_free_bind(), gprs_ns2_nse_foreach_nsvc(), gprs_ns2_nsvc_by_nsvci(), gprs_ns2_nsvc_by_sockaddr_nse(), gprs_ns2_start_alive_all_nsvcs(), ns2_clear_sgsn(), ns2_count_transfer_cap(), ns2_create_vc_sns(), ns2_free_nsvcs(), ns2_load_sharing_first(), ns2_load_sharing_modulo(), ns2_load_sharing_signal(), ns2_load_sharing_weight_modulo(), ns2_nse_data_sum(), ns2_nse_notify_unblocked(), ns2_nse_update_mtu(), ns2_sns_notify_alive(), ns2_sns_replace_nsvc(), ns2_sns_rx(), ns2_sns_st_all_action(), ns2_sns_st_configured_onenter(), ns2_st_unblocked_on_enter(), ns2_vc_alloc(), and nsvc_for_bind_and_remote().

## nsvc_count

int gprs_ns2_nse::nsvc_count

count all active NSVCs

Referenced by ns2_load_sharing_modulo(), ns2_load_sharing_weight_modulo(), and ns2_nse_data_sum().

## persistent

bool gprs_ns2_nse::persistent

true if this NSE was created by VTY or pcu socket)

Referenced by _sns_failed(), config_write_ns_nse(), DEFUN(), DEFUN(), DEFUN_HIDDEN(), dump_nse(), ns2_create_vc(), and ns2_prim_status_ind().

## sum_data_weight

uint32_t gprs_ns2_nse::sum_data_weight

sum of all the data weight of alive NS-VCs

Referenced by ns2_load_sharing_weight_modulo(), and ns2_nse_data_sum().

## sum_sig_weight

uint32_t gprs_ns2_nse::sum_sig_weight

sum of all the signalling weight of alive NS-VCs

Referenced by ns2_nse_data_sum(), ns2_sns_notify_alive(), and ns2_sns_st_all_action().

## ts_alive_change

struct timespec gprs_ns2_nse::ts_alive_change

when the NSE became alive or dead

Referenced by dump_nse(), and gprs_ns2_create_nse2().

The documentation for this struct was generated from the following file:

- src/gb/gprs_ns2_internal.h