libosmogb 1.10.0.64-ff3d
Osmocom Gb library
|
Structure representing a single NS-VC. More...
#include <gprs_ns2_internal.h>
Data Fields | |
struct llist_head | list |
list of NS-VCs within NSE More... | |
struct llist_head | blist |
list of NS-VCs within bind, bind is the owner! More... | |
struct gprs_ns2_nse * | nse |
pointer to NS Instance More... | |
struct gprs_ns2_vc_bind * | bind |
pointer to NS VL bind. More... | |
bool | persistent |
true if this NS was created by VTY or pcu socket) More... | |
uint16_t | nsvci |
uniquely identifies NS-VC if VC contains nsvci More... | |
uint8_t | sig_weight |
signalling weight. More... | |
uint8_t | sig_counter |
signalling packet counter for the load sharing function More... | |
uint8_t | data_weight |
data weight. More... | |
void * | priv |
can be used by the bind/driver of the virtual circuit. More... | |
bool | nsvci_is_valid |
bool | sns_only |
should this NS-VC only be used for SNS-SIZE and SNS-CONFIG? More... | |
struct rate_ctr_group * | ctrg |
struct osmo_stat_item_group * | statg |
enum gprs_ns2_vc_mode | mode |
struct osmo_fsm_inst * | fi |
bool | freed |
recursive anchor More... | |
bool | om_blocked |
if blocked by O&M/vty More... | |
struct timespec | ts_alive_change |
when the NSVC became alive or dead More... | |
Structure representing a single NS-VC.
struct gprs_ns2_vc_bind* gprs_ns2_vc::bind |
pointer to NS VL bind.
bind own the memory of this instance
Referenced by config_write_nsvc(), dump_bind(), free_vc(), gprs_ns2_fr_nsvc_dlci(), gprs_ns2_free_nsvc(), gprs_ns2_ip_connect(), gprs_ns2_ip_connect_inactive(), gprs_ns2_ip_vc_equal(), gprs_ns2_ip_vc_local(), gprs_ns2_ip_vc_remote(), gprs_ns2_ll_str_buf(), handle_nsip_sendto(), ns2_nse_update_mtu(), ns2_tx_status(), ns2_vc_alloc(), ns_vc_tx(), and nsvc_for_bind_and_remote().
struct llist_head gprs_ns2_vc::blist |
list of NS-VCs within bind, bind is the owner!
Referenced by gprs_ns2_free_nsvc(), and ns2_vc_alloc().
struct rate_ctr_group* gprs_ns2_vc::ctrg |
Referenced by gprs_ns2_free_nsvc(), ns2_tx_block(), ns2_vc_alloc(), and ns2_vty_dump_nsvc().
uint8_t gprs_ns2_vc::data_weight |
data weight.
0 = don't use for user data (BVCI != 0)
Referenced by create_nsvc_for_new_sbind(), do_sns_change_weight(), ns2_load_sharing_weight_modulo(), ns2_nse_data_sum(), ns2_sns_st_all_action_sgsn(), ns2_vc_alloc(), ns2_vty_dump_nsvc(), and ns_nse_nsvc_udp_cmds().
struct osmo_fsm_inst* gprs_ns2_vc::fi |
bool gprs_ns2_vc::freed |
recursive anchor
Referenced by gprs_ns2_free_nsvc().
struct llist_head gprs_ns2_vc::list |
list of NS-VCs within NSE
Referenced by gprs_ns2_free_nsvc(), and ns2_vc_alloc().
enum gprs_ns2_vc_mode gprs_ns2_vc::mode |
struct gprs_ns2_nse* gprs_ns2_vc::nse |
pointer to NS Instance
Referenced by config_write_nsvc(), DEFUN(), do_sns_add(), dump_nse(), gprs_ns2_free_nsvc(), gprs_ns2_free_nsvcs(), gprs_ns2_ip_connect(), gprs_ns2_ip_connect_inactive(), gprs_ns2_ll_str_buf(), gprs_ns2_nse_foreach_nsvc(), gprs_ns2_nsvc_by_nsvci(), gprs_ns2_recv_prim(), gprs_ns2_start_alive_all_nsvcs(), handle_nsip_recvfrom(), log_set_nse_filter(), ns2_free_nsvcs(), ns2_load_sharing(), ns2_load_sharing_first(), ns2_load_sharing_modulo(), ns2_load_sharing_signal(), ns2_load_sharing_weight_modulo(), ns2_nse_data_sum(), ns2_nse_update_mtu(), ns2_sns_notify_alive(), ns2_sns_rx(), ns2_st_unconfigured(), ns2_tx_alive(), ns2_tx_alive_ack(), ns2_tx_block(), ns2_tx_block_ack(), ns2_tx_reset(), ns2_tx_reset_ack(), ns2_tx_simple(), 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_tx_status(), ns2_tx_unblock(), ns2_tx_unblock_ack(), ns2_tx_unit_data(), ns2_vc_alloc(), ns2_vc_rx(), ns_inst_from_fi(), ns_nse_nsvc_udp_cmds(), nsvc_for_bind_and_remote(), and start_test_procedure().
uint16_t gprs_ns2_vc::nsvci |
uniquely identifies NS-VC if VC contains nsvci
Referenced by config_write_nsvc(), DEFUN(), gprs_ns2_fr_connect(), gprs_ns2_ip_connect(), gprs_ns2_ip_connect_inactive(), gprs_ns2_ip_vc_equal(), gprs_ns2_ll_str_buf(), gprs_ns2_nsvc_by_nsvci(), ns2_tx_block(), ns2_tx_block_ack(), ns2_tx_reset(), ns2_tx_reset_ack(), ns2_tx_status(), ns2_vc_rx(), and ns2_vty_dump_nsvc().
bool gprs_ns2_vc::nsvci_is_valid |
bool gprs_ns2_vc::om_blocked |
if blocked by O&M/vty
Referenced by ns2_st_blocked(), ns2_st_blocked_onenter(), ns2_st_unconfigured(), ns2_vc_block(), ns2_vc_fsm_allstate_action(), ns2_vc_fsm_timer_cb(), ns2_vc_unblock(), and ns2_vty_dump_nsvc().
bool gprs_ns2_vc::persistent |
true if this NS was created by VTY or pcu socket)
Referenced by DEFUN(), ns2_vty_dump_nsvc(), and ns_nse_nsvc_udp_cmds().
void* gprs_ns2_vc::priv |
can be used by the bind/driver of the virtual circuit.
e.g. ipv4/ipv6/frgre/e1
Referenced by fr_alloc_vc(), fr_vc_sendmsg(), free_vc(), frgre_alloc_vc(), frgre_vc_sendmsg(), gprs_ns2_find_vc_by_dlci(), gprs_ns2_fr_connect(), gprs_ns2_fr_nsvc_by_dlci(), gprs_ns2_fr_nsvc_dlci(), gprs_ns2_free_nsvc(), gprs_ns2_ip_vc_equal(), gprs_ns2_ip_vc_remote(), gprs_ns2_nsvc_by_sockaddr_bind(), ns2_driver_alloc_vc(), ns2_find_vc_by_dlci(), ns2_ip_bind_connect(), ns2_st_unblocked_on_enter(), nsip_vc_sendmsg(), and recv_test_procedure().
uint8_t gprs_ns2_vc::sig_counter |
signalling packet counter for the load sharing function
uint8_t gprs_ns2_vc::sig_weight |
signalling weight.
0 = don't use for signalling (BVCI == 0)
Referenced by create_nsvc_for_new_sbind(), do_sns_change_weight(), ns2_nse_data_sum(), ns2_sns_st_all_action_sgsn(), ns2_vc_alloc(), ns2_vty_dump_nsvc(), and ns_nse_nsvc_udp_cmds().
bool gprs_ns2_vc::sns_only |
should this NS-VC only be used for SNS-SIZE and SNS-CONFIG?
Referenced by create_nsvc_for_new_sbind(), gprs_ns2_start_alive_all_nsvcs(), ns2_sns_st_bss_size_onenter(), and ns2_sns_st_configured_onenter().
struct osmo_stat_item_group* gprs_ns2_vc::statg |
Referenced by gprs_ns2_free_nsvc(), ns2_vc_alloc(), ns2_vty_dump_nsvc(), recv_test_procedure(), and stop_test_procedure().
struct timespec gprs_ns2_vc::ts_alive_change |
when the NSVC became alive or dead
Referenced by ns2_vc_alloc(), and ns2_vty_dump_nsvc().