Loading...
Searching...
No Matches
gprs_ns2_vc Struct Reference

Structure representing a single NS-VC. More...

`#include <gprs_ns2_internal.h>`

## Data Fields

struct llist_head | list
| list of NS-VCs within NSE
struct llist_head | blist
| list of NS-VCs within bind, bind is the owner!
struct gprs_ns2_nse * | nse
| pointer to NS Instance
struct gprs_ns2_vc_bind * | bind
| pointer to NS VL bind.
bool | persistent
| true if this NS was created by VTY or pcu socket)
uint16_t | nsvci
| uniquely identifies NS-VC if VC contains nsvci
uint8_t | sig_weight
| signalling weight.
uint8_t | sig_counter
| signalling packet counter for the load sharing function
uint8_t | data_weight
| data weight.
void * | priv
| can be used by the bind/driver of the virtual circuit.
bool | nsvci_is_valid
bool | sns_only
| should this NS-VC only be used for SNS-SIZE and SNS-CONFIG?
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
bool | om_blocked
| if blocked by O&M/vty
struct timespec | ts_alive_change
| when the NSVC became alive or dead

## Detailed Description

Structure representing a single NS-VC.

## Field Documentation

## bind

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(), 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_sns_st_all_action(), ns2_tx_status(), ns2_vc_alloc(), ns_vc_tx(), and nsvc_for_bind_and_remote().

## blist

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().

## ctrg

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().

## data_weight

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().

## fi

struct osmo_fsm_inst* gprs_ns2_vc::fi

Referenced by do_sns_add(), gprs_ns2_free_nsvc(), gprs_ns2_nsvc_state_name(), ns2_vc_block(), ns2_vc_force_unconfigured(), ns2_vc_fsm_alloc(), ns2_vc_fsm_start(), ns2_vc_is_unblocked(), ns2_vc_reset(), ns2_vc_rx(), ns2_vc_unblock(), and ns2_vty_dump_nsvc().

## freed

bool gprs_ns2_vc::freed

recursive anchor

Referenced by gprs_ns2_free_nsvc().

## list

struct llist_head gprs_ns2_vc::list

list of NS-VCs within NSE

Referenced by dump_nse(), gprs_ns2_free_nsvc(), gprs_ns2_nse_foreach_nsvc(), gprs_ns2_nsvc_by_nsvci(), gprs_ns2_start_alive_all_nsvcs(), ns2_clear_sgsn(), 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_update_mtu(), ns2_sns_notify_alive(), ns2_vc_alloc(), and nsvc_for_bind_and_remote().

## mode

enum gprs_ns2_vc_mode gprs_ns2_vc::mode

Referenced by alive_timeout_handler(), gprs_ns2_ip_connect_inactive(), gprs_ns2_ip_vc_equal(), ns2_st_unconfigured(), ns2_validate_status(), ns2_vc_alloc(), ns2_vc_fsm_allstate_action(), and recv_test_procedure().

## nse

struct gprs_ns2_nse* gprs_ns2_vc::nse

pointer to NS Instance

Referenced by config_write_nsvc(), DEFUN(), DEFUN(), 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_recv_unitdata(), ns2_recv_vc(), 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().

## nsvci

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_create_vc(), 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().

## nsvci_is_valid

bool gprs_ns2_vc::nsvci_is_valid

Referenced by config_write_nsvc(), DEFUN(), gprs_ns2_fr_connect(), gprs_ns2_ip_connect_inactive(), gprs_ns2_ll_str_buf(), gprs_ns2_nsvc_by_nsvci(), ns2_create_vc(), ns2_create_vc_sns(), ns2_vc_rx(), and ns2_vty_dump_nsvc().

## om_blocked

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().

## persistent

bool gprs_ns2_vc::persistent

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

Referenced by DEFUN(), DEFUN(), DEFUN(), ns2_create_vc(), ns2_vty_dump_nsvc(), and ns_nse_nsvc_udp_cmds().

## priv

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(), free_vc(), 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().

## sig_counter

uint8_t gprs_ns2_vc::sig_counter

signalling packet counter for the load sharing function

Referenced by ns2_load_sharing_signal().

## sig_weight

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().

## sns_only

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().

## statg

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().

## ts_alive_change

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().

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

- src/gb/gprs_ns2_internal.h