libosmo-sigtran  1.4.0
Osmocom SIGTRAN library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
osmo_ss7_vty.c File Reference
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <stdint.h>
#include <string.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <osmocom/core/sockaddr_str.h>
#include <osmocom/vty/vty.h>
#include <osmocom/vty/command.h>
#include <osmocom/vty/logging.h>
#include <osmocom/vty/telnet_interface.h>
#include <osmocom/vty/misc.h>
#include <osmocom/sigtran/osmo_ss7.h>
#include <osmocom/sigtran/protocol/mtp.h>
#include "xua_internal.h"
#include <osmocom/sigtran/sccp_sap.h>
#include "sccp_internal.h"

Data Structures

struct  osmo_sccp_addr_entry
 

Macros

#define XUA_VAR_STR   "(sua|m3ua|ipa)"
 
#define XUA_VAR_HELP_STR
 
#define ROUTING_KEY_CMD   "routing-key RCONTEXT DPC"
 
#define ROUTING_KEY_CMD_STRS
 
#define ROUTING_KEY_SI_ARG   " si (aal2|bicc|b-isup|h248|isup|sat-isup|sccp|tup)"
 
#define ROUTING_KEY_SI_ARG_STRS
 
#define ROUTING_KEY_SSN_ARG   " ssn SSN"
 
#define ROUTING_KEY_SSN_ARG_STRS
 

Enumerations

enum  cs7_role_t { CS7_ROLE_SG, CS7_ROLE_ASP }
 

Functions

 DEFUN_ATTR (cs7_instance, cs7_instance_cmd,"cs7 instance <0-15>", CS7_STR"Configure a SS7 Instance\n"INST_STR"Number of the instance\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_net_ind, cs7_net_ind_cmd,"network-indicator (international | national | reserved | spare)","Configure the Network Indicator\n""International Network\n""National Network\n""Reserved Network\n""Spare Network\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_pc_format, cs7_pc_format_cmd,"point-code format <1-24> [<1-23>] [<1-22>]", PC_STR"Configure Point Code Format\n""Length of first PC component\n""Length of second PC component\n""Length of third PC component\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_pc_format_def, cs7_pc_format_def_cmd,"point-code format default", PC_STR"Configure Point Code Format\n""Default Point Code Format (3.8.3)\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_pc_delimiter, cs7_pc_delimiter_cmd,"point-code delimiter (default|dash)", PC_STR"Configure Point Code Delimiter\n""Use dot as delimiter\n""User dash as delimiter\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_point_code, cs7_point_code_cmd,"point-code POINT_CODE","Configure the local Point Code\n""Point Code\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_permit_dyn_rkm, cs7_permit_dyn_rkm_cmd,"xua rkm routing-key-allocation (static-only|dynamic-permitted)","SIGTRAN xxxUA related\n""Routing Key Management\n""Routing Key Management Allocation Policy\n""Only static (pre-confgured) Routing Keys permitted\n""Dynamically allocate Routing Keys for what ASPs request\n", CMD_ATTR_IMMEDIATE)
 
static void write_one_cs7 (struct vty *vty, struct osmo_ss7_instance *inst, bool show_dyn_config)
 
static int write_all_cs7 (struct vty *vty, bool show_dyn_config)
 
static int config_write_cs7 (struct vty *vty)
 
 DEFUN (show_cs7_user, show_cs7_user_cmd,"show cs7 instance <0-15> users", SHOW_STR CS7_STR INST_STR INST_STR"User Table\n")
 
 DEFUN_ATTR (cs7_route_table, cs7_route_table_cmd,"route-table system","Specify the name of the route table\n""Name of the route table\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_rt_upd, cs7_rt_upd_cmd,"update route POINT_CODE MASK linkset LS_NAME [priority PRIO] [qos-class (CLASS|default)]","Update the Route\n""Update the Route\n""Destination Point Code\n""Point Code Mask\n""Point Code Length\n""Specify Destination Linkset\n""Linkset Name\n""Specify Priority\n""Priority\n""Specify QoS Class\n""QoS Class\n""Default QoS Class\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_rt_rem, cs7_rt_rem_cmd,"remove route POINT_CODE MASK","Remove a Route\n""Remove a Route\n""Destination Point Code\n""Point Code Mask\n""Point Code Length\n", CMD_ATTR_IMMEDIATE)
 
static void write_one_rtable (struct vty *vty, struct osmo_ss7_route_table *rtable)
 
static void vty_dump_rtable (struct vty *vty, struct osmo_ss7_route_table *rtbl)
 
 DEFUN (show_cs7_route, show_cs7_route_cmd,"show cs7 instance <0-15> route", SHOW_STR CS7_STR INST_STR INST_STR"Routing Table\n")
 
static enum osmo_ss7_asp_protocol parse_asp_proto (const char *protocol)
 
 DEFUN_ATTR (cs7_xua, cs7_xua_cmd,"listen "XUA_VAR_STR" <0-65534>","Configure/Enable xUA Listener\n"XUA_VAR_HELP_STR"SCTP Port number\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (no_cs7_xua, no_cs7_xua_cmd,"no listen "XUA_VAR_STR" <0-65534>", NO_STR"Disable xUA Listener on given SCTP Port\n"XUA_VAR_HELP_STR"SCTP Port number\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (xua_local_ip, xua_local_ip_cmd,"local-ip "VTY_IPV46_CMD,"Configure the Local IP Address for xUA\n""IPv4 Address to use for XUA\n""IPv6 Address to use for XUA\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (xua_accept_dyn_asp, xua_accept_dyn_asp_cmd,"accept-asp-connections (pre-configured|dynamic-permitted)","Define what kind of ASP connections to accept\n""Accept only pre-confiugred ASPs (source IP/prt)\n""Accept any connection and dynamically create an ASP definition\n", CMD_ATTR_IMMEDIATE)
 
static void write_one_xua (struct vty *vty, struct osmo_xua_server *xs)
 
static void vty_dump_xua_server (struct vty *vty, struct osmo_xua_server *xs)
 
 DEFUN (show_cs7_xua, show_cs7_xua_cmd,"show cs7 "XUA_VAR_STR" [<0-65534>]", SHOW_STR CS7_STR XUA_VAR_HELP_STR"Port Number")
 
 DEFUN (show_cs7_config, show_cs7_config_cmd,"show cs7 config", SHOW_STR CS7_STR"Currently running cs7 configuration")
 
 DEFUN_ATTR (cs7_asp, cs7_asp_cmd,"asp NAME <0-65535> <0-65535> "XUA_VAR_STR,"Configure Application Server Process\n""Name of ASP\n""Remote SCTP port number\n""Local SCTP port number\n"XUA_VAR_HELP_STR, CMD_ATTR_NODE_EXIT)
 
 DEFUN_ATTR (no_cs7_asp, no_cs7_asp_cmd,"no asp NAME", NO_STR"Disable Application Server Process\n""Name of ASP\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (asp_local_ip, asp_local_ip_cmd,"local-ip "VTY_IPV46_CMD,"Specify Local IP Address from which to contact ASP\n""Local IPv4 Address from which to contact of ASP\n""Local IPv6 Address from which to contact of ASP\n", CMD_ATTR_NODE_EXIT)
 
 DEFUN_ATTR (asp_remote_ip, asp_remote_ip_cmd,"remote-ip "VTY_IPV46_CMD,"Specify Remote IP Address of ASP\n""Remote IPv4 Address of ASP\n""Remote IPv6 Address of ASP\n", CMD_ATTR_NODE_EXIT)
 
 DEFUN_ATTR (asp_qos_clas, asp_qos_class_cmd,"qos-class <0-255>","Specify QoS Class of ASP\n""QoS Class of ASP\n", CMD_ATTR_NODE_EXIT)
 
 DEFUN_ATTR (asp_role, asp_role_cmd,"role (sg|asp|ipsp)","Specify the xUA role for this ASP\n""SG (Signaling Gateway)\n""ASP (Application Server Process)\n""IPSP (IP Signalling Point)\n", CMD_ATTR_NODE_EXIT)
 
 DEFUN_ATTR (sctp_role, asp_sctp_role_cmd,"sctp-role (client|server)","Specify the SCTP role for this ASP\n""Operate as SCTP client; connect to a server\n""Operate as SCTP server; wait for client connections\n", CMD_ATTR_NODE_EXIT)
 
 DEFUN_ATTR (asp_block, asp_block_cmd,"block","Allows a SCTP Association with ASP, but doesn't let it become active\n", CMD_ATTR_NODE_EXIT)
 
 DEFUN_ATTR (asp_shutdown, asp_shutdown_cmd,"shutdown","Terminates SCTP association; New associations will be rejected\n", CMD_ATTR_NODE_EXIT)
 
 DEFUN (show_cs7_asp, show_cs7_asp_cmd,"show cs7 instance <0-15> asp", SHOW_STR CS7_STR INST_STR INST_STR"Application Server Process (ASP)\n")
 
static void write_one_asp (struct vty *vty, struct osmo_ss7_asp *asp, bool show_dyn_config)
 
 DEFUN_ATTR (cs7_as, cs7_as_cmd,"as NAME "XUA_VAR_STR,"Configure an Application Server\n""Name of the Application Server\n"XUA_VAR_HELP_STR, CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (no_cs7_as, no_cs7_as_cmd,"no as NAME", NO_STR"Disable Application Server\n""Name of AS\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (as_asp, as_asp_cmd,"asp NAME","Specify that a given ASP is part of this AS\n""Name of ASP to be added to AS\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (as_no_asp, as_no_asp_cmd,"no asp NAME", NO_STR"Specify ASP to be removed from this AS\n""Name of ASP to be removed\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_USRATTR (as_traf_mode, as_traf_mode_cmd, OSMO_SCCP_LIB_ATTR_RSTRT_ASP,"traffic-mode (broadcast | loadshare | roundrobin | override)","Specifies traffic mode of operation of the ASP within the AS\n""Broadcast to all ASP within AS\n""Share Load among all ASP within AS\n""Round-Robin between all ASP within AS\n""Override\n")
 
 DEFUN_USRATTR (as_no_traf_mode, as_no_traf_mode_cmd, OSMO_SCCP_LIB_ATTR_RSTRT_ASP,"no traffic-mode", NO_STR"Remove explicit traffic mode of operation of this AS\n")
 
 DEFUN_ATTR (as_recov_tout, as_recov_tout_cmd,"recovery-timeout <1-2000>","Specifies the recovery timeout value in milliseconds\n""Recovery Timeout in Milliseconds\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (as_qos_clas, as_qos_class_cmd,"qos-class <0-255>","Specity QoS Class of AS\n""QoS Class of AS\n", CMD_ATTR_IMMEDIATE)
 
static int _rout_key (struct vty *vty, const char *rcontext, const char *dpc, const char *si, const char *ssn)
 
 DEFUN_ATTR (as_rout_key, as_rout_key_cmd, ROUTING_KEY_CMD, ROUTING_KEY_CMD_STRS, CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (as_rout_key_si, as_rout_key_si_cmd, ROUTING_KEY_CMD ROUTING_KEY_SI_ARG, ROUTING_KEY_CMD_STRS ROUTING_KEY_SI_ARG_STRS, CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (as_rout_key_ssn, as_rout_key_ssn_cmd, ROUTING_KEY_CMD ROUTING_KEY_SSN_ARG, ROUTING_KEY_CMD_STRS ROUTING_KEY_SSN_ARG_STRS, CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (as_rout_key_si_ssn, as_rout_key_si_ssn_cmd, ROUTING_KEY_CMD ROUTING_KEY_SI_ARG ROUTING_KEY_SSN_ARG, ROUTING_KEY_CMD_STRS ROUTING_KEY_SI_ARG_STRS ROUTING_KEY_SSN_ARG_STRS, CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (as_pc_override, as_pc_override_cmd,"point-code override dpc PC","Point Code Specific Features\n""Override (force) a point-code to hard-coded value\n""Override Source Point Code\n""Override Destination Point Code\n""New Point Code\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (as_pc_patch_sccp, as_pc_patch_sccp_cmd,"point-code override patch-sccp (disabled|both)","Point Code Specific Features\n""Override (force) a point-code to hard-coded value\n""Patch point code values into SCCP called/calling address\n""Don't patch any point codes into SCCP called/calling address\n""Patch both origin and destination point codes into SCCP called/calling address\n", CMD_ATTR_IMMEDIATE)
 
static void write_one_as (struct vty *vty, struct osmo_ss7_as *as, bool show_dyn_config)
 
 DEFUN (show_cs7_as, show_cs7_as_cmd,"show cs7 instance <0-15> as (active|all|m3ua|sua)", SHOW_STR CS7_STR INST_STR INST_STR"Application Server (AS)\n""Display all active ASs\n""Display all ASs (default)\n""Display all m3ua ASs\n""Display all SUA ASs\n")
 
 LLIST_HEAD (sccp_address_book_global)
 
static struct
osmo_sccp_addr_entry
addr_entry_by_name_local (const char *name, const struct osmo_ss7_instance *inst)
 
static struct
osmo_sccp_addr_entry
addr_entry_by_name_global (const char *name)
 
struct osmo_ss7_instanceosmo_sccp_addr_by_name (struct osmo_sccp_addr *dest_addr, const char *name)
 Lookup an SCCP address from the addressbook by its name. More...
 
const char * osmo_sccp_name_by_addr (const struct osmo_sccp_addr *addr)
 Reverse lookup the lookup-name of a specified SCCP address. More...
 
static void write_sccp_addressbook (struct vty *vty, const struct osmo_ss7_instance *inst)
 
 DEFUN (cs7_show_sccpaddr, cs7_show_sccpaddr_cmd,"show cs7 instance <0-15> sccp addressbook", SHOW_STR CS7_STR INST_STR INST_STR SCCP_STR"List all SCCP addressbook entries\n")
 
 DEFUN_ATTR (cs7_sccpaddr, cs7_sccpaddr_cmd,"sccp-address NAME","Create/Modify an SCCP addressbook entry\n""Name of the SCCP Address\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_sccpaddr_del, cs7_sccpaddr_del_cmd,"no sccp-address NAME", NO_STR"Delete an SCCP addressbook entry\n""Name of the SCCP Address\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_sccpaddr_ri, cs7_sccpaddr_ri_cmd,"routing-indicator (GT|PC|IP)","Add Routing Indicator\n""by global-title\n""by point-code\n""by ip-address\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_sccpaddr_pc, cs7_sccpaddr_pc_cmd,"point-code POINT_CODE","Add point-code Number\n""PC\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_sccpaddr_pc_del, cs7_sccpaddr_pc_del_cmd,"no point-code", NO_STR"Remove point-code Number\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_sccpaddr_ssn, cs7_sccpaddr_ssn_cmd,"subsystem-number <0-4294967295>","Add Subsystem Number\n""SSN\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_sccpaddr_ssn_del, cs7_sccpaddr_ssn_del_cmd,"no subsystem-number", NO_STR"Remove Subsystem Number\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_sccpaddr_gt, cs7_sccpaddr_gt_cmd,"global-title","Add/Modify Global Title\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_sccpaddr_gt_del, cs7_sccpaddr_gt_del_cmd,"no global-title", NO_STR"Remove Global Title\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_sccpaddr_gt_gti, cs7_sccpaddr_gt_gti_cmd,"global-title-indicator <0-15>","Set Global Title Indicator\n""GTI\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_sccpaddr_gt_tt, cs7_sccpaddr_gt_tt_cmd,"translation-type <0-255>","Set Global Title Translation Type\n""TT\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_sccpaddr_gt_npi, cs7_sccpaddr_gt_npi_cmd,"numbering-plan-indicator <0-15>","Set Global Title Numbering Plan Indicator\n""NPI\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_sccpaddr_gt_nai, cs7_sccpaddr_gt_nai_cmd,"nature-of-address-indicator <0-127>","Set Global Title Nature of Address Indicator\n""NAI\n", CMD_ATTR_IMMEDIATE)
 
 DEFUN_ATTR (cs7_sccpaddr_gt_digits, cs7_sccpaddr_gt_digits_cmd,"digits DIGITS","Set Global Title Digits\n""Number digits\n", CMD_ATTR_IMMEDIATE)
 
static bool ipv6_sctp_supported (const char *host, bool bind)
 
int osmo_ss7_vty_go_parent (struct vty *vty)
 
int osmo_ss7_is_config_node (struct vty *vty, int node)
 
static void vty_init_addr (void)
 
static void vty_init_shared (void *ctx)
 
void osmo_ss7_vty_init_asp (void *ctx)
 
void osmo_ss7_vty_init_sg (void *ctx)
 

Variables

enum cs7_role_t __attribute__
 
static enum cs7_role_t cs7_role
 
static void * g_ctx
 
static struct cmd_node cs7_node
 
static const struct value_string ss7_network_indicator_vals []
 
static struct cmd_node rtable_node
 
static struct cmd_node xua_node
 
static struct cmd_node asp_node
 
static struct cmd_node as_node
 
const struct value_string mtp_si_vals []
 
static struct cmd_node sccpaddr_node
 
static struct cmd_node sccpaddr_gt_node
 

Macro Definition Documentation

#define ROUTING_KEY_CMD   "routing-key RCONTEXT DPC"
#define ROUTING_KEY_CMD_STRS
Value:
"Define a routing key\n" \
"Routing context number\n" \
"Destination Point Code\n"
#define ROUTING_KEY_SI_ARG   " si (aal2|bicc|b-isup|h248|isup|sat-isup|sccp|tup)"
#define ROUTING_KEY_SI_ARG_STRS
Value:
"Match on Service Indicator\n" \
"ATM Adaption Layer 2\n" \
"Bearer Independent Call Control\n" \
"Broadband ISDN User Part\n" \
"H.248\n" \
"ISDN User Part\n" \
"Sattelite ISDN User Part\n" \
"Signalling Connection Control Part\n" \
"Telephony User Part\n"
#define ROUTING_KEY_SSN_ARG   " ssn SSN"
#define ROUTING_KEY_SSN_ARG_STRS
Value:
"Match on Sub-System Number\n" \
"Sub-System Number to match on\n"
#define XUA_VAR_HELP_STR
Value:
"SCCP User Adaptation\n" \
"MTP3 User Adaptation\n" \
"IPA Multiplex (SCCP Lite)\n"
#define XUA_VAR_STR   "(sua|m3ua|ipa)"

Enumeration Type Documentation

enum cs7_role_t
Enumerator
CS7_ROLE_SG 
CS7_ROLE_ASP 

Function Documentation

static int _rout_key ( struct vty *  vty,
const char *  rcontext,
const char *  dpc,
const char *  si,
const char *  ssn 
)
static
static struct osmo_sccp_addr_entry* addr_entry_by_name_global ( const char *  name)
static
static struct osmo_sccp_addr_entry* addr_entry_by_name_local ( const char *  name,
const struct osmo_ss7_instance inst 
)
static
static int config_write_cs7 ( struct vty *  vty)
static

References write_all_cs7().

Referenced by vty_init_shared().

DEFUN ( show_cs7_user  ,
show_cs7_user_cmd  ,
"show cs7 instance <0-15> users"  ,
SHOW_STR CS7_STR INST_STR INST_STR"User Table\n"   
)
DEFUN ( show_cs7_route  ,
show_cs7_route_cmd  ,
"show cs7 instance <0-15> route"  ,
SHOW_STR CS7_STR INST_STR INST_STR"Routing Table\n"   
)
DEFUN ( show_cs7_xua  ,
show_cs7_xua_cmd  ,
"show cs7 "XUA_VAR_STR" "  [< 0-65534 >],
SHOW_STR CS7_STR XUA_VAR_HELP_STR"Port Number"   
)
DEFUN ( show_cs7_config  ,
show_cs7_config_cmd  ,
"show cs7 config"  ,
SHOW_STR CS7_STR"Currently running cs7 configuration"   
)

References write_all_cs7().

DEFUN ( show_cs7_asp  ,
show_cs7_asp_cmd  ,
"show cs7 instance <0-15> asp"  ,
SHOW_STR CS7_STR INST_STR INST_STR"Application Server Process (ASP)\n"   
)
DEFUN ( show_cs7_as  ,
show_cs7_as_cmd  ,
"show cs7 instance <0-15> as (active|all|m3ua|sua)"  ,
SHOW_STR CS7_STR INST_STR INST_STR"Application Server (AS)\n""Display all active ASs\n""Display all ASs (default)\n""Display all m3ua ASs\n""Display all SUA ASs\n"   
)
DEFUN_ATTR ( cs7_instance  ,
cs7_instance_cmd  ,
"cs7 instance <0-15>"  ,
CS7_STR"Configure a SS7 Instance\n"INST_STR"Number of the instance\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_net_ind  ,
cs7_net_ind_cmd  ,
"network-indicator (international | national | reserved | spare)"  ,
"Configure the Network Indicator\n""International Network\n""National Network\n""Reserved Network\n""Spare Network\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_pc_format  ,
cs7_pc_format_cmd  ,
"point-code format <1-24> "  [< 1-23 >][< 1-22 >],
PC_STR"Configure Point Code Format\n""Length of first PC component\n""Length of second PC component\n""Length of third PC component\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_pc_format_def  ,
cs7_pc_format_def_cmd  ,
"point-code format default"  ,
PC_STR"Configure Point Code Format\n""Default Point Code Format (3.8.3)\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_pc_delimiter  ,
cs7_pc_delimiter_cmd  ,
"point-code delimiter (default|dash)"  ,
PC_STR"Configure Point Code Delimiter\n""Use dot as delimiter\n""User dash as delimiter\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_point_code  ,
cs7_point_code_cmd  ,
"point-code POINT_CODE"  ,
"Configure the local Point Code\n""Point Code\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_permit_dyn_rkm  ,
cs7_permit_dyn_rkm_cmd  ,
"xua rkm routing-key-allocation (static-only|dynamic-permitted)"  ,
"SIGTRAN xxxUA related\n""Routing Key Management\n""Routing Key Management Allocation Policy\n""Only static (pre-confgured) Routing Keys permitted\n""Dynamically allocate Routing Keys for what ASPs request\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_route_table  ,
cs7_route_table_cmd  ,
"route-table system"  ,
"Specify the name of the route table\n""Name of the route table\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_rt_upd  ,
cs7_rt_upd_cmd  ,
"update route POINT_CODE MASK linkset LS_NAME "  [priority PRIO][qos-class(CLASS|default)],
"Update the Route\n""Update the Route\n""Destination Point Code\n""Point Code Mask\n""Point Code Length\n""Specify Destination Linkset\n""Linkset Name\n""Specify Priority\n""Priority\n""Specify QoS Class\n""QoS Class\n""Default QoS Class\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_rt_rem  ,
cs7_rt_rem_cmd  ,
"remove route POINT_CODE MASK"  ,
"Remove a Route\n""Remove a Route\n""Destination Point Code\n""Point Code Mask\n""Point Code Length\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_xua  ,
cs7_xua_cmd  ,
"listen "XUA_VAR_STR" <0-65534>"  ,
"Configure/Enable xUA Listener\n"XUA_VAR_HELP_STR"SCTP Port number\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( no_cs7_xua  ,
no_cs7_xua_cmd  ,
"no listen "XUA_VAR_STR" <0-65534>"  ,
NO_STR"Disable xUA Listener on given SCTP Port\n"XUA_VAR_HELP_STR"SCTP Port number\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( xua_local_ip  ,
xua_local_ip_cmd  ,
"local-ip "  VTY_IPV46_CMD,
"Configure the Local IP Address for xUA\n""IPv4 Address to use for XUA\n""IPv6 Address to use for XUA\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( xua_accept_dyn_asp  ,
xua_accept_dyn_asp_cmd  ,
"accept-asp-connections (pre-configured|dynamic-permitted)"  ,
"Define what kind of ASP connections to accept\n""Accept only pre-confiugred ASPs (source IP/prt)\n""Accept any connection and dynamically create an ASP definition\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_asp  ,
cs7_asp_cmd  ,
"asp NAME <0-65535> <0-65535> "  XUA_VAR_STR,
"Configure Application Server Process\n""Name of ASP\n""Remote SCTP port number\n""Local SCTP port number\n"  XUA_VAR_HELP_STR,
CMD_ATTR_NODE_EXIT   
)
DEFUN_ATTR ( no_cs7_asp  ,
no_cs7_asp_cmd  ,
"no asp NAME"  ,
NO_STR"Disable Application Server Process\n""Name of ASP\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( asp_local_ip  ,
asp_local_ip_cmd  ,
"local-ip "  VTY_IPV46_CMD,
"Specify Local IP Address from which to contact ASP\n""Local IPv4 Address from which to contact of ASP\n""Local IPv6 Address from which to contact of ASP\n"  ,
CMD_ATTR_NODE_EXIT   
)
DEFUN_ATTR ( asp_remote_ip  ,
asp_remote_ip_cmd  ,
"remote-ip "  VTY_IPV46_CMD,
"Specify Remote IP Address of ASP\n""Remote IPv4 Address of ASP\n""Remote IPv6 Address of ASP\n"  ,
CMD_ATTR_NODE_EXIT   
)
DEFUN_ATTR ( asp_qos_clas  ,
asp_qos_class_cmd  ,
"qos-class <0-255>"  ,
"Specify QoS Class of ASP\n""QoS Class of ASP\n"  ,
CMD_ATTR_NODE_EXIT   
)
DEFUN_ATTR ( asp_role  ,
asp_role_cmd  ,
"role (sg|asp|ipsp)"  ,
"Specify the xUA role for this ASP\n""SG (Signaling Gateway)\n""ASP (Application Server Process)\n""IPSP (IP Signalling Point)\n"  ,
CMD_ATTR_NODE_EXIT   
)
DEFUN_ATTR ( sctp_role  ,
asp_sctp_role_cmd  ,
"sctp-role (client|server)"  ,
"Specify the SCTP role for this ASP\n""Operate as SCTP client; connect to a server\n""Operate as SCTP server; wait for client connections\n"  ,
CMD_ATTR_NODE_EXIT   
)
DEFUN_ATTR ( asp_block  ,
asp_block_cmd  ,
"block"  ,
"Allows a SCTP Association with  ASP,
but doesn't let it become active\n"  ,
CMD_ATTR_NODE_EXIT   
)
DEFUN_ATTR ( asp_shutdown  ,
asp_shutdown_cmd  ,
"shutdown"  ,
"Terminates SCTP association; New associations will be rejected\n"  ,
CMD_ATTR_NODE_EXIT   
)
DEFUN_ATTR ( cs7_as  ,
cs7_as_cmd  ,
"as NAME "  XUA_VAR_STR,
"Configure an Application Server\n""Name of the Application Server\n"  XUA_VAR_HELP_STR,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( no_cs7_as  ,
no_cs7_as_cmd  ,
"no as NAME"  ,
NO_STR"Disable Application Server\n""Name of AS\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( as_asp  ,
as_asp_cmd  ,
"asp NAME"  ,
"Specify that a given ASP is part of this AS\n""Name of ASP to be added to AS\n"  ,
CMD_ATTR_IMMEDIATE   
)

References osmo_ss7_as_add_asp().

DEFUN_ATTR ( as_no_asp  ,
as_no_asp_cmd  ,
"no asp NAME"  ,
NO_STR"Specify ASP to be removed from this AS\n""Name of ASP to be removed\n"  ,
CMD_ATTR_IMMEDIATE   
)

References osmo_ss7_as_del_asp().

DEFUN_ATTR ( as_recov_tout  ,
as_recov_tout_cmd  ,
"recovery-timeout <1-2000>"  ,
"Specifies the recovery timeout value in milliseconds\n""Recovery Timeout in Milliseconds\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( as_qos_clas  ,
as_qos_class_cmd  ,
"qos-class <0-255>"  ,
"Specity QoS Class of AS\n""QoS Class of AS\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( as_rout_key  ,
as_rout_key_cmd  ,
ROUTING_KEY_CMD  ,
ROUTING_KEY_CMD_STRS  ,
CMD_ATTR_IMMEDIATE   
)

References _rout_key().

DEFUN_ATTR ( as_rout_key_si  ,
as_rout_key_si_cmd  ,
ROUTING_KEY_CMD  ROUTING_KEY_SI_ARG,
ROUTING_KEY_CMD_STRS  ROUTING_KEY_SI_ARG_STRS,
CMD_ATTR_IMMEDIATE   
)

References _rout_key().

DEFUN_ATTR ( as_rout_key_ssn  ,
as_rout_key_ssn_cmd  ,
ROUTING_KEY_CMD  ROUTING_KEY_SSN_ARG,
ROUTING_KEY_CMD_STRS  ROUTING_KEY_SSN_ARG_STRS,
CMD_ATTR_IMMEDIATE   
)

References _rout_key().

DEFUN_ATTR ( as_rout_key_si_ssn  ,
as_rout_key_si_ssn_cmd  ,
ROUTING_KEY_CMD ROUTING_KEY_SI_ARG  ROUTING_KEY_SSN_ARG,
ROUTING_KEY_CMD_STRS ROUTING_KEY_SI_ARG_STRS  ROUTING_KEY_SSN_ARG_STRS,
CMD_ATTR_IMMEDIATE   
)

References _rout_key().

DEFUN_ATTR ( as_pc_override  ,
as_pc_override_cmd  ,
"point-code override dpc PC"  ,
"Point Code Specific Features\n""Override (force) a point-code to hard-coded value\n""Override Source Point Code\n""Override Destination Point Code\n""New Point Code\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( as_pc_patch_sccp  ,
as_pc_patch_sccp_cmd  ,
"point-code override patch-sccp (disabled|both)"  ,
"Point Code Specific Features\n""Override (force) a point-code to hard-coded value\n""Patch point code values into SCCP called/calling address\n""Don't patch any point codes into SCCP called/calling address\n""Patch both origin and destination point codes into SCCP called/calling address\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr  ,
cs7_sccpaddr_cmd  ,
"sccp-address NAME"  ,
"Create/Modify an SCCP addressbook entry\n""Name of the SCCP Address\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr_del  ,
cs7_sccpaddr_del_cmd  ,
"no sccp-address NAME"  ,
NO_STR"Delete an SCCP addressbook entry\n""Name of the SCCP Address\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr_ri  ,
cs7_sccpaddr_ri_cmd  ,
"routing-indicator (GT|PC|IP)"  ,
"Add Routing Indicator\n""by global-title\n""by point-code\n""by ip-address\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr_pc  ,
cs7_sccpaddr_pc_cmd  ,
"point-code POINT_CODE"  ,
"Add point-code Number\n""PC\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr_pc_del  ,
cs7_sccpaddr_pc_del_cmd  ,
"no point-code"  ,
NO_STR"Remove point-code Number\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr_ssn  ,
cs7_sccpaddr_ssn_cmd  ,
"subsystem-number <0-4294967295>"  ,
"Add Subsystem Number\n""SSN\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr_ssn_del  ,
cs7_sccpaddr_ssn_del_cmd  ,
"no subsystem-number"  ,
NO_STR"Remove Subsystem Number\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr_gt  ,
cs7_sccpaddr_gt_cmd  ,
"global-title"  ,
"Add/Modify Global Title\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr_gt_del  ,
cs7_sccpaddr_gt_del_cmd  ,
"no global-title"  ,
NO_STR"Remove Global Title\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr_gt_gti  ,
cs7_sccpaddr_gt_gti_cmd  ,
"global-title-indicator <0-15>"  ,
"Set Global Title Indicator\n""GTI\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr_gt_tt  ,
cs7_sccpaddr_gt_tt_cmd  ,
"translation-type <0-255>"  ,
"Set Global Title Translation Type\n""TT\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr_gt_npi  ,
cs7_sccpaddr_gt_npi_cmd  ,
"numbering-plan-indicator <0-15>"  ,
"Set Global Title Numbering Plan Indicator\n""NPI\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr_gt_nai  ,
cs7_sccpaddr_gt_nai_cmd  ,
"nature-of-address-indicator <0-127>"  ,
"Set Global Title Nature of Address Indicator\n""NAI\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_ATTR ( cs7_sccpaddr_gt_digits  ,
cs7_sccpaddr_gt_digits_cmd  ,
"digits DIGITS"  ,
"Set Global Title Digits\n""Number digits\n"  ,
CMD_ATTR_IMMEDIATE   
)
DEFUN_USRATTR ( as_traf_mode  ,
as_traf_mode_cmd  ,
OSMO_SCCP_LIB_ATTR_RSTRT_ASP  ,
"traffic-mode (broadcast | loadshare | roundrobin | override)"  ,
"Specifies traffic mode of operation of the ASP within the AS\n""Broadcast to all ASP within AS\n""Share Load among all ASP within AS\n""Round-Robin between all ASP within AS\n""Override\n"   
)
DEFUN_USRATTR ( as_no_traf_mode  ,
as_no_traf_mode_cmd  ,
OSMO_SCCP_LIB_ATTR_RSTRT_ASP  ,
"no traffic-mode"  ,
NO_STR"Remove explicit traffic mode of operation of this AS\n"   
)
static bool ipv6_sctp_supported ( const char *  host,
bool  bind 
)
static

Referenced by osmo_ss7_vty_go_parent().

LLIST_HEAD ( sccp_address_book_global  )
struct osmo_ss7_instance* osmo_sccp_addr_by_name ( struct osmo_sccp_addr dest_addr,
const char *  name 
)

Lookup an SCCP address from the addressbook by its name.

Parameters
[out]dest_addrpointer to output the resulting sccp-address; (set to NULL if not interested)
[in]nameof the address to lookup
Returns
SS7 instance; NULL on error

References osmo_sccp_addr_entry::addr, addr_entry_by_name_global(), and osmo_sccp_addr_entry::inst.

const char* osmo_sccp_name_by_addr ( const struct osmo_sccp_addr addr)

Reverse lookup the lookup-name of a specified SCCP address.

Parameters
[in]nameof the address to lookup
Returns
char pointer to the lookup-name; NULL on error

References osmo_sccp_addr_entry::addr, osmo_sccp_addr_entry::list_global, and osmo_sccp_addr_entry::name.

int osmo_ss7_is_config_node ( struct vty *  vty,
int  node 
)
void osmo_ss7_vty_init_asp ( void *  ctx)
void osmo_ss7_vty_init_sg ( void *  ctx)
static enum osmo_ss7_asp_protocol parse_asp_proto ( const char *  protocol)
static

References osmo_ss7_asp_protocol_vals.

Referenced by DEFUN(), and DEFUN_ATTR().

static void vty_dump_xua_server ( struct vty *  vty,
struct osmo_xua_server xs 
)
static
static void vty_init_addr ( void  )
static

References sccpaddr_gt_node, and sccpaddr_node.

Referenced by vty_init_shared().

static void vty_init_shared ( void *  ctx)
static
static int write_all_cs7 ( struct vty *  vty,
bool  show_dyn_config 
)
static

Variable Documentation

enum cs7_role_t __attribute__
struct cmd_node as_node
static
Initial value:
= {
L_CS7_AS_NODE,
"%s(config-cs7-as)# ",
1,
}

Referenced by vty_init_shared().

struct cmd_node asp_node
static
Initial value:
= {
L_CS7_ASP_NODE,
"%s(config-cs7-asp)# ",
1,
}

Referenced by vty_init_shared().

struct cmd_node cs7_node
static
Initial value:
= {
L_CS7_NODE,
"%s(config-cs7)# ",
1,
}

Referenced by vty_init_shared().

enum cs7_role_t cs7_role
static
void* g_ctx
static

Referenced by DEFUN_ATTR(), and vty_init_shared().

const struct value_string mtp_si_vals[]
Initial value:
= {
{ MTP_SI_SCCP, "sccp" },
{ MTP_SI_TUP, "tup" },
{ MTP_SI_ISUP, "isup" },
{ MTP_SI_DUP, "dup" },
{ MTP_SI_TESTING, "testing" },
{ MTP_SI_B_ISUP, "b-isup" },
{ MTP_SI_SAT_ISUP, "sat-isup" },
{ MTP_SI_AAL2_SIG, "aal2" },
{ MTP_SI_BICC, "bicc" },
{ MTP_SI_GCP, "h248" },
{ 0, NULL }
}
Definition: mtp.h:12
Definition: mtp.h:17
Definition: mtp.h:21
Definition: mtp.h:13
Definition: mtp.h:11
Definition: mtp.h:20
Definition: mtp.h:16
Definition: mtp.h:15
Definition: mtp.h:10
Definition: mtp.h:19

Referenced by _rout_key(), write_one_as(), and xua_snm_rx_dupu().

struct cmd_node rtable_node
static
Initial value:
= {
L_CS7_RTABLE_NODE,
"%s(config-cs7-rt)# ",
1,
}

Referenced by osmo_ss7_vty_init_sg().

struct cmd_node sccpaddr_gt_node
static
Initial value:
= {
L_CS7_SCCPADDR_GT_NODE,
"%s(config-cs7-sccpaddr-gt)# ",
1,
}

Referenced by vty_init_addr().

struct cmd_node sccpaddr_node
static
Initial value:
= {
L_CS7_SCCPADDR_NODE,
"%s(config-cs7-sccpaddr)# ",
1,
}

Referenced by vty_init_addr().

const struct value_string ss7_network_indicator_vals[]
static
Initial value:
= {
{ 0, "international" },
{ 1, "spare" },
{ 2, "national" },
{ 3, "reserved" },
{ 0, NULL }
}

Referenced by DEFUN_ATTR(), and write_one_cs7().

struct cmd_node xua_node
static
Initial value:
= {
L_CS7_XUA_NODE,
"%s(config-cs7-listen)# ",
1,
}

Referenced by osmo_ss7_vty_init_sg().