62#if defined(WITH_SNMP) && defined(WITH_RESTCONF)
63#include <net-snmp/net-snmp-config.h>
66#include <net-snmp/net-snmp-features.h>
69#include <net-snmp/net-snmp-includes.h>
105#define SES_MY_SID(S) ((S)->sid)
108#define SES_MY_FD(S) ((S)->fd)
111#define SES_MY_USERNAME(S) ((S)->username)
114#define SES_KILLREQ_SET(S) ((S)->state >= SES_ST_SHUTDOWN_REQ)
117#define SES_ACK_KILLREQ(S) ((S)->state = SES_ST_SHUTDOWN)
120#define SES_OUT_BYTES(S) (S)->stats.out_bytes
123#define SES_LINELEN(S) (S)->stats.out_line
126#define SES_LINESIZE(S) (S)->linesize
129#define SES_IN_ENCODING(S) (S)->in_encoding
132#define SES_OUT_ENCODING(S) (S)->out_encoding
135#define SES_IS_DUMMY(S) ((S)->sid == 0)
138#define SES_IS_YCONTROL(S) ((S)->ycontrol)
141#define SES_CONN_CLOSED(S) (S)->conn_closed
144#define SES_SET_CUR_RPC_MSG(S,MSG) (S)->cur_rpc_msg = MSG
147#define SES_GET_CUR_RPC_MSG(S) (S)->cur_rpc_msg
150#define SES_GET_JSON_1LINE(S) (S)->json_1line
153#define SES_USE_JSON_ATTRS(S) (S)->json_attrs
156#define SES_SET_JSON_ATTRS(S) (S)->json_attrs = TRUE
159#define SES_SET_LEAFLIST_PTR(S,V) (S)->leaflist = V
162#define SES_GET_LEAFLIST_PTR(S) (S)->leaflist
165#define SES_SET_LEAFLIST_ATTRS(S,A) (S)->any_leaflist_attrs = A
168#define SES_GET_LEAFLIST_ATTRS(S) (S)->any_leaflist_attrs
171#define SES_KEEP_XMLNS(S) (S)->keep_xmlns
174#define SES_RAWXML_MODE(S) (S)->rawxml_mode
177#define SES_STATE(S) (S)->state
180#define SES_PEERADDR(S) (S)->peeraddr
183#define SES_TRANSPORT(S) (S)->transport
186#define SES_PROTOCOL(S) (S)->protocol
189#define SES_IS_IPV6(S) (S)->is_ipv6
192#define SES_IS_CALLHOME(S) (S)->is_callhome
195#define SES_TYPE(S) (S)->type
198#define SES_GET_COOKIE(S) (S)->get_cookie
201#define SES_BREADCRUMBQ(S) &(S)->breadcrumbQ
204#define SES_CURMSG(S) (S)->curmsg
207#define SES_START_TLS(S) (S)->start_tls
210#define SES_WILDCARD_OK(S) (S)->wildcard_ok
213#define SES_MGRCB(S) (S)->mgrcb
216#define SES_NOTIF_ACTIVE(S) (S)->notif_active
219#define SES_RFC8639_NOTIF_COUNT(S) (S)->rfc8639_notif_cnt
225#define SES_BINARY_NOTIFS(S) (S)->binary_notifs
230#define BINLOG (const xmlChar *)"***binary***"
237#define SES_CALLHOME_NAME(S) (S)->callhome_name
241#define SES_NULL_SID 0
251#define SES_MSG_BUFFSIZE 1000
257#define SES_MAX_BUFFERS 500000
261#define SES_MAX_FREE_BUFFERS 4
263#define SES_MAX_FREE_BUFFERS 32
267#define SES_MAX_BUFFSEND 32
270#define SES_MAX_BYTESEND 0xffff
273#define SES_DEF_LINESIZE 72
276#define SES_MAX_STARTCHUNK_SIZE 13
279#define SES_MAX_CHUNKNUM_SIZE 10
292#define SES_STARTCHUNK_PAD 10
297#define SES_ENDCHUNK_PAD 8
300#define SES_READBUFF_SIZE 1000
303#define SES_GET_YPMODE(S) (S)->yp_mode
306#define SES_SET_YPMODE(S,V) (S)->yp_mode = V
309#define SES_REMOTE_WAIT(S) (S)->remote_wait
312#define SES_NEED_FILE_OVERRIDE(S) ((S)->file_override && (S)->fp)
315#define SES_SYSTEM_USERNAME NCX_EL_SYSTEM
328typedef enum ses_ypmode_t_ {
337typedef enum ses_type_t_ {
349typedef enum ses_transport_t_ {
363 SES_TRANSPORT_COAP_DTLS,
371typedef enum ses_state_t_ {
385typedef enum ses_instate_t_ {
396typedef enum ses_mode_t_ {
407typedef enum ses_term_reason_t_ {
420typedef enum ses_prolog_state_t_ {
434typedef struct ses_stats_t_ {
462typedef struct ses_total_stats_t_ {
490typedef struct ses_msg_buff_t_ {
509typedef struct ses_ready_t_ {
525typedef struct ses_msg_t_ {
563typedef struct ses_cb_t_ {
652 struct yangapi_cb_t_ *
rcb;
848#if defined(WITH_SNMP) && defined(WITH_RESTCONF)
1183extern const xmlChar *
1220 const xmlChar *fname);
1232 const xmlChar *fname);
1244 const xmlChar *fname);
1285extern const xmlChar *
1297extern const xmlChar *
1380 boolean rawxml_mode);
1396 boolean rawxml_mode,
1397 boolean keep_xmlns);
1413 boolean rawxml_mode);
1429 boolean rawxml_mode,
1430 boolean keep_xmlns);
1475 int32 indent_amount);
1504 uint32 fillbuffsize,
1637extern const xmlChar *
1650 const xmlChar *point);
1714 struct obj_template_t_ *obj);
1746 const xmlChar *filespec,
1782 uint32 *checksum_cnt);
dlq provides general double-linked list and queue support:
status_t
global error return code
Definition: status_enum.h:187
void ses_putjstr(ses_cb_t *scb, const xmlChar *str, int32 indent)
write JSON safe content string Write a zero-terminated element content string to the session
Definition: ses.c:2924
void ses_set_out_encoding(ses_cb_t *scb, ncx_display_mode_t encoding)
Set the output encoding.
Definition: ses.c:4389
void ses_free_scb(ses_cb_t *scb)
Free a session control block.
Definition: ses.c:2357
int32 ses_indent_count(const ses_cb_t *scb)
Get the logging indent count for this session.
Definition: ses.c:3025
void ses_start_checksum(ses_cb_t *scb)
Clear the checksum field and start checksum mode.
Definition: ses.c:5247
void ses_start_msg_mode(ses_cb_t *scb)
Set the message output mode to active.
Definition: ses.c:3158
boolean ses_protocol_requested(ses_cb_t *scb, ncx_protocol_t proto)
check if the NETCONF protocol version was requested
Definition: ses.c:4223
void ses_set_grpc_session(ses_cb_t *scb)
Set the specified session as a gRPC session.
Definition: ses.c:5408
void ses_set_gnmi_session(ses_cb_t *scb)
Set the specified session as a gNMI session.
Definition: ses.c:5051
uint32 ses_line_left(const ses_cb_t *scb)
Get the number of bytes that can be added to the current line before the session linesize limit is re...
Definition: ses.c:3747
void ses_set_mode(ses_cb_t *scb, ses_mode_t mode)
Set the output mode for the specified session.
Definition: ses.c:3119
void ses_put_extern(ses_cb_t *scb, const xmlChar *fname)
write the contents of a file to the session
Definition: ses.c:3769
boolean ses_is_control_session(ses_cb_t *scb)
Check if the specified session is a control session.
Definition: ses.c:4691
void ses_set_extern_xml_mode_ex(ses_cb_t *scb, boolean rawxml_mode, boolean keep_xmlns)
Setup the scb for external XML parsing.
Definition: ses.c:4307
boolean ses_is_dbapi_session(ses_cb_t *scb)
Check if the specified session is a DB-API control session.
Definition: ses.c:4728
void ses_finish_msg(ses_cb_t *scb)
Finish an outbound message on the specified session.
Definition: ses.c:3244
void ses_put_binstr(ses_cb_t *scb, const xmlChar *str, uint32 len)
Write a binary string to the session.
Definition: ses.c:2676
void ses_puthstr(ses_cb_t *scb, const xmlChar *str)
write HTML element safe content string Write a zero-terminated element content string to the session
Definition: ses.c:2790
void ses_clear_extern_xml_mode(ses_cb_t *scb, boolean rawxml_mode)
Clear the scb from external XML parsing.
Definition: ses.c:4339
ncx_withdefaults_t ses_withdef(const ses_cb_t *scb)
Get the with-defaults value for this session.
Definition: ses.c:3726
ncx_display_mode_t ses_get_out_encoding(ses_cb_t *scb)
Get the output encoding.
Definition: ses.c:4431
void ses_putstr_indent(ses_cb_t *scb, const xmlChar *str, int32 indent)
Write a zero-terminated content string to the session with indentation.
Definition: ses.c:2710
status_t ses_start_msg(ses_cb_t *scb)
Start a new outbound message on the specified session.
Definition: ses.c:3196
status_t ses_set_protocol(ses_cb_t *scb, ncx_protocol_t proto)
set the NETCONF protocol version in use
Definition: ses.c:4085
void ses_free_xml_reader(ses_cb_t *scb)
Free the xmlTextReader for the session The encoding is switching from XML to something else.
Definition: ses.c:4485
void ses_clear_dbapi_system_session(ses_cb_t *scb)
Clear a session of the DB-API system status.
Definition: ses.c:4799
const xmlChar * ses_state_name(ses_state_t state)
Get the name of a session state from the enum value.
Definition: ses.c:3684
const xmlChar * ses_get_entry_point(ses_cb_t *scb)
Get the RESTCONF entry_point.
Definition: ses.c:4947
status_t ses_set_file_override(ses_cb_t *scb, const xmlChar *filespec, boolean is_binary)
Setup the session in file write override mode.
Definition: ses.c:5187
ncx_protocol_t ses_get_protocol(const ses_cb_t *scb)
Get the NETCONF protocol set (or unset) for this session.
Definition: ses.c:4159
int32 ses_new_indent_count(boolean indent_in, int32 indent, int32 indent_amount)
Get the new indent count from the current and indent_amount.
Definition: ses.c:4453
ses_cb_t * ses_new_snmp_scb(void)
Create a new global SNMP session control block.
Definition: ses.c:2321
int32 ses_message_indent_count(const ses_cb_t *scb)
Get the message indent count for this session.
Definition: ses.c:3046
status_t ses_set_gnmi_control_session(ses_cb_t *scb)
Set the specified session as a gNMI control session.
Definition: ses.c:5005
ses_transport_t ses_get_transport_enum(const xmlChar *str)
Get the enum value for the yumaworks-types:transport-type.
Definition: ses.c:4007
void ses_stop_msg_mode(ses_cb_t *scb)
Set the message output mode to inactive.
Definition: ses.c:3176
void ses_putstr(ses_cb_t *scb, const xmlChar *str)
Write a zero-terminated string to the session.
Definition: ses.c:2653
status_t ses_put_extern_bin(ses_cb_t *scb, const xmlChar *fname)
write the contents of a binary file to the session
Definition: ses.c:3828
void ses_indent(ses_cb_t *scb, int32 indent)
Write the proper newline + indentation to the specified session.
Definition: ses.c:2992
status_t ses_set_entry_point(ses_cb_t *scb, const xmlChar *point)
Set the RESTCONF entry_point.
Definition: ses.c:4972
boolean ses_notifications_active(const ses_cb_t *scb)
Check if the session has notifications active.
Definition: ses.c:5089
ses_total_stats_t * ses_get_total_stats(void)
Get a r/w pointer to the the session totals stats.
Definition: ses.c:3865
void ses_init_coap_scb(ses_cb_t *scb)
Initialize a CoAP session control block.
Definition: ses.c:2289
void ses_set_indent(ses_cb_t *scb, int32 indent)
Set the logging indent count for this session.
Definition: ses.c:3064
const xmlChar * ses_get_transport_name(ses_transport_t transport)
Get the name of the transport for a given enum value.
Definition: ses.c:3903
boolean ses_poll_ready(ses_cb_t *scb)
Check if the specified session is ready to read bytes.
Definition: ses.c:5503
void ses_set_dbapi_system_session(ses_cb_t *scb)
Set the specified session as a DB-API control session for system edits.
Definition: ses.c:4764
boolean ses_is_grpc_control_session(ses_cb_t *scb)
Check if the specified session is a gRPC control session.
Definition: ses.c:5385
void ses_clean_breadcrumbQ(ses_cb_t *scb)
Clean the breadcrumbQ.
Definition: ses.c:5146
status_t ses_accept_input(ses_cb_t *scb)
The IO input handler for the ncxserver loop.
Definition: ses.c:3448
boolean ses_dropped(const ses_cb_t *scb)
Check if the session has been dropped by the client.
Definition: ses.c:5165
status_t ses_set_control_session(ses_cb_t *scb)
Set the specified session as a control session.
Definition: ses.c:4670
void ses_putcstr(ses_cb_t *scb, const xmlChar *str, int32 indent)
write XML element safe content string Write a zero-terminated element content string to the session
Definition: ses.c:2746
void ses_putastr(ses_cb_t *scb, const xmlChar *str, int32 indent)
write XML attribute safe content string Write a zero-terminated attribute content string to the sessi...
Definition: ses.c:2870
ses_cb_t * ses_new_coap_scb(void)
Create a new global CoAP session control block.
Definition: ses.c:2268
status_t ses_add_breadcrumb_obj(ses_cb_t *scb, struct obj_template_t_ *obj)
Add an object to the breadcrumbQ.
void ses_putchar(ses_cb_t *scb, uint32 ch)
Write one char to the session, without any translation.
Definition: ses.c:2600
boolean ses_get_xml_nons(const ses_cb_t *scb)
force xmlns attributes to be skipped in XML mode
Definition: ses.c:4066
void ses_set_protocols_requested(ses_cb_t *scb, ncx_protocol_t proto)
set the NETCONF protocol versions requested
Definition: ses.c:4180
void ses_set_message_indent(ses_cb_t *scb, int32 indent)
Set the message indent count for this session.
Definition: ses.c:3091
void ses_putcchar(ses_cb_t *scb, uint32 ch)
Write one content char to the session, with translation as needed.
Definition: ses.c:2828
status_t ses_start_http_chunk_mode(ses_cb_t *scb)
Start outputting buffers in HTTP 1.1 chunk mode.
Definition: ses.c:4910
ncx_msg_encoding_t ses_get_msg_encoding(const ses_cb_t *scb)
Get the message encoding for the HTTP session.
Definition: ses.c:4890
int32 ses_add_indent(ses_cb_t *scb, int32 indent)
Add in the new indent amount.
Definition: ses.c:4820
ses_transport_t ses_get_transport(ses_cb_t *scb)
Get the transport enum for a given session.
Definition: ses.c:3883
int ses_read_cb(void *context, char *buffer, int len)
The IO input front-end for the xmlTextReader parser read fn.
Definition: ses.c:3326
void ses_set_xml_nons(ses_cb_t *scb)
force xmlns attributes to be skipped in XML mode
Definition: ses.c:4046
void ses_clear_extern_xml_mode_ex(ses_cb_t *scb, boolean rawxml_mode, boolean keep_xmlns)
Clear the scb from external XML parsing.
Definition: ses.c:4363
void ses_set_SSE_encoding(ses_cb_t *scb)
Set the output encoding to have a Server Sent Events filter Used for notification delivery over RESTC...
Definition: ses.c:4408
boolean ses_is_dbapi_system_session(ses_cb_t *scb)
Check if the specified session is a DB-API control session for system edits.
Definition: ses.c:4783
int32 ses_dec_indent(ses_cb_t *scb, int32 indent)
Remove the specified indent amount.
Definition: ses.c:4854
status_t ses_getline_cb(xmlChar *fillbuff, uint32 fillbuffsize, void *cookie)
The IO input front-end for the tk_parse_json_buffs function.
Definition: ses.c:4520
void ses_set_dbapi_session(ses_cb_t *scb)
Set the specified session as a DB-API control session.
Definition: ses.c:4709
boolean ses_is_gnmi_control_session(ses_cb_t *scb)
Check if the specified session is a gNMI control session.
Definition: ses.c:5028
ses_cb_t * ses_new_dummy_scb(void)
Create a new dummy session control block.
Definition: ses.c:2236
uint32 ses_finish_checksum(ses_cb_t *scb, uint32 *checksum_cnt)
Stop checksum mode and return the final checksum.
Definition: ses.c:5274
boolean ses_is_grpc_session(ses_cb_t *scb)
Check if the specified session is a gRPC session.
Definition: ses.c:5427
boolean ses_is_system_session(ses_cb_t *scb)
Check if the specified session is an internal system session.
Definition: ses.c:4746
void ses_set_extern_xml_mode(ses_cb_t *scb, boolean rawxml_mode)
Setup the scb for external XML parsing.
Definition: ses.c:4284
boolean ses_dropped_ex(ses_cb_t *scb)
Check if the session has been dropped by the client.
Definition: ses.c:5313
const xmlChar * ses_get_transport_yang_name(ses_transport_t transport)
Get the name of the transport for a given enum value.
Definition: ses.c:3961
status_t ses_set_grpc_control_session(ses_cb_t *scb)
Set the specified session as a gRPC control session.
Definition: ses.c:5362
status_t ses_put_extern2(ses_cb_t *scb, const xmlChar *fname)
write the contents of a file to the session
Definition: ses.c:3792
void ses_dump_binary_buff(const xmlChar *buff, size_t bufflen)
Dump some bytes from the binary buffer (max 256)
Definition: ses.c:5448
ses_cb_t * ses_new_scb(void)
Create a new session control block.
Definition: ses.c:2161
ses_mode_t ses_get_mode(ses_cb_t *scb)
Get the output mode for the specified session.
Definition: ses.c:3138
boolean ses_is_gnmi_session(ses_cb_t *scb)
Check if the specified session is a gNMI session.
Definition: ses.c:5070
void ses_clear_file_override(ses_cb_t *scb)
Cleanup the session in file write override mode Does not delete the file, just closes it!
Definition: ses.c:5223
void ses_put_binchar(ses_cb_t *scb, uint32 ch)
Write one binary char to the session, without any translation.
Definition: ses.c:2626
status_t(* ses_write_fn_t)(void *s)
optional write function for the session
Definition: ses.h:559
ses_transport_t
NETCONF Transport Types.
Definition: ses.h:349
ses_ypmode_t
YANG-PATCH Mode.
Definition: ses.h:328
ses_state_t
Session States.
Definition: ses.h:371
ses_mode_t
Session Output Mode.
Definition: ses.h:396
ses_term_reason_t
Session Termination reason.
Definition: ses.h:407
ses_type_t
Session Types.
Definition: ses.h:337
ses_instate_t
Session Input Handler States for base:1.0 EOM processing.
Definition: ses.h:385
uint32 ses_id_t
Session ID.
Definition: ses.h:325
#define SES_MSG_BUFFSIZE
controls the size of each buffer chunk
Definition: ses.h:251
#define SES_MAX_STARTCHUNK_SIZE
max size of a valid base:1.1 chunk header start tag
Definition: ses.h:276
ses_prolog_state_t
prolog parsing state
Definition: ses.h:420
ssize_t(* ses_read_fn_t)(void *s, char *buff, size_t bufflen, bool *erragain)
optional read function for the session
Definition: ses.h:547
@ SES_TRANSPORT_TCP_TAILF
tail-f NETCONF over TCP
Definition: ses.h:356
@ SES_TRANSPORT_BEEP
not used
Definition: ses.h:352
@ SES_TRANSPORT_COAP
CoAP UDP socket.
Definition: ses.h:362
@ SES_TRANSPORT_CLI
YumaPro CLI hook (ncxconnect, NETCONF framing)
Definition: ses.h:359
@ SES_TRANSPORT_NETCONF_TLS
NETCONF over TLS.
Definition: ses.h:365
@ SES_TRANSPORT_WEBUI
not used YumaPro WEBui (ncxconnect, no framing)
Definition: ses.h:360
@ SES_TRANSPORT_SOAP
not used
Definition: ses.h:353
@ SES_TRANSPORT_SNMP
SNMP UDP socket.
Definition: ses.h:364
@ SES_TRANSPORT_NONE
not set
Definition: ses.h:350
@ SES_TRANSPORT_SSH
NETCONF over SSH (RFC 4742 and 6242)
Definition: ses.h:351
@ SES_TRANSPORT_TLS
YANGAPI/RESTCONF over TLS.
Definition: ses.h:355
@ SES_TRANSPORT_AFLOCAL
ncxserver.sock AF_LOCAL socket – control msg
Definition: ses.h:361
@ SES_TRANSPORT_GNMI
GNMI Internal processing over RESTCONF.
Definition: ses.h:366
@ SES_TRANSPORT_HTTP
YumaPro REST API ncxconnect, no framing.
Definition: ses.h:358
@ SES_TRANSPORT_SOAPBEEP
not used
Definition: ses.h:354
@ SES_TRANSPORT_TCP_NCX
YumaWorks NETCONF over TCP.
Definition: ses.h:357
@ SES_YPMODE_RESTCONF
RESTCONF mode.
Definition: ses.h:331
@ SES_YPMODE_HA
YP-HA mode.
Definition: ses.h:330
@ SES_YPMODE_NONE
not set
Definition: ses.h:329
@ SES_YPMODE_NETCONF
NETCONF mode.
Definition: ses.h:332
@ SES_ST_IN_MSG
processing a request
Definition: ses.h:378
@ SES_ST_HELLO_WAIT
waiting for peer <hello>
Definition: ses.h:374
@ SES_ST_INIT
initialization state
Definition: ses.h:373
@ SES_ST_IDLE
adble to accept requests
Definition: ses.h:377
@ SES_ST_NONE
not set
Definition: ses.h:372
@ SES_ST_SHUTDOWN_REQ
session shutdown requested
Definition: ses.h:379
@ SES_ST_SHUTDOWN
session shutting down
Definition: ses.h:380
@ SES_ST_XRD_WAIT
RESTCONF Entry point processing.
Definition: ses.h:375
@ SES_ST_RESTCAPS_WAIT
RESTCONF Capabilities processing.
Definition: ses.h:376
@ SES_MODE_TEXT
text mode
Definition: ses.h:401
@ SES_MODE_BINARY
binary mode
Definition: ses.h:402
@ SES_MODE_HTML
HTML mode.
Definition: ses.h:400
@ SES_MODE_XMLDOC
XML documentation mode.
Definition: ses.h:399
@ SES_MODE_NONE
not set
Definition: ses.h:397
@ SES_MODE_XML
XML mode.
Definition: ses.h:398
@ SES_TR_CLOSED
close-session
Definition: ses.h:409
@ SES_TR_NONE
not set
Definition: ses.h:408
@ SES_TR_BAD_START
bad session start
Definition: ses.h:414
@ SES_TR_KILLED
kill-session
Definition: ses.h:410
@ SES_TR_TIMEOUT
inactivity timeout
Definition: ses.h:412
@ SES_TR_DROPPED
dropped by remote peer
Definition: ses.h:411
@ SES_TR_OTHER
other
Definition: ses.h:413
@ SES_TR_BAD_HELLO
bad <hello> received
Definition: ses.h:415
@ SES_TYP_NONE
not set
Definition: ses.h:338
@ SES_TYP_NETCONF
any network configuration protocol
Definition: ses.h:339
@ SES_TYP_COAP
RESTCONF over CoAP; static socket, libcoap.
Definition: ses.h:342
@ SES_TYP_GNMI
RESTCONF over GNMI.
Definition: ses.h:344
@ SES_TYP_YCONTROL
internal YControl session w/ subsystem
Definition: ses.h:341
@ SES_TYP_DUMMY
internal session for rollback, etc.
Definition: ses.h:340
@ SES_TYP_SNMP
RESTCONF over SNMP.
Definition: ses.h:343
@ SES_INST_INMSG
in message body
Definition: ses.h:388
@ SES_INST_NONE
not set
Definition: ses.h:386
@ SES_INST_INSTART
starting in the EOM field
Definition: ses.h:389
@ SES_INST_IDLE
idle state
Definition: ses.h:387
@ SES_INST_INEND
ending the EOM field
Definition: ses.h:391
@ SES_INST_INBETWEEN
in between 2 messages
Definition: ses.h:390
@ SES_PRST_WAITING
waiting
Definition: ses.h:422
@ SES_PRST_DONE
done
Definition: ses.h:423
@ SES_PRST_NONE
not set
Definition: ses.h:421
#define TSTAMP_MIN_SIZE
normal minimum buffer size for a tstamp buffer
Definition: tstamp.h:71
ncx_msg_encoding_t
enumeration for message encoding formats
Definition: ncxtypes.h:647
ncx_protocol_t
NCX session protocol versions supported.
Definition: ncxtypes.h:988
ncx_display_mode_t
enumeration of val_dump_value display modes Some RESTCONF code uses this field incorrectly for messag...
Definition: ncxtypes.h:617
ncx_withdefaults_t
enum for with-defaults enum values
Definition: ncxtypes.h:1259
YANG module data structures Many internal representations of YANG module constructs.
Global error messages for status code enumerations.
Session Control Block.
Definition: ses.h:563
boolean content_length_based
content len based msg body
Definition: ses.h:686
boolean rawxml_mode
T: expand_anyxml, F: normal.
Definition: ses.h:597
ses_read_fn_t rdfn
set if external write fn
Definition: ses.h:636
boolean framing11
T: base:1.1, F: base:1.0.
Definition: ses.h:594
xmlChar * readbuff
input buffer for session
Definition: ses.h:662
uint32 checksum
running checksum for YANG Push Simulated Operational mode
Definition: ses.h:748
uint32 freecnt
current freeQ count
Definition: ses.h:641
boolean http_chunk_mode
T: send HTTP chunks, F: normal.
Definition: ses.h:610
boolean locks_released
Signal release point in kill.
Definition: ses.h:587
boolean binary_notifs
Flag to indicate Binary Notification Messages are expected to be received on this session.
Definition: ses.h:772
uint32 linesize
TERM line length.
Definition: ses.h:668
ses_msg_t * curmsg
pointer to current message to read set by agt only
Definition: ses.h:727
xmlChar * callhome_name
set for server NETCONF over TLS callhome sessions so the callhome reconnect can be checked when the s...
Definition: ses.h:784
void * openssl_ssl
malloced with SSL_new
Definition: ses.h:707
xmlChar * username
user ID
Definition: ses.h:579
boolean direct_mode
T: yp-shell, F: normal.
Definition: ses.h:598
boolean is_ipv6
T: using IPv6 address, F: IPv4.
Definition: ses.h:615
boolean sse_mode
T: Server Sent Events, F: normal.
Definition: ses.h:603
struct rpc_msg_t_ * cur_rpc_msg
for SIL-SA get callback
Definition: ses.h:650
uint32 readbuffsize
input buffer size
Definition: ses.h:663
dlq_hdr_t breadcrumbQ
Queue of breadcrumb object back pointers used in XPath GET2 processing of when-stmts in operational s...
Definition: ses.h:724
dlq_hdr_t freeQ
Q of ses_msg_buff_t.
Definition: ses.h:643
uint32 checksum_cnt
byte count
Definition: ses.h:749
boolean stream_output
buffer/stream svr
Definition: ses.h:592
boolean msg_mode
T:msg-indent F:indent.
Definition: ses.h:599
boolean ypgnmi
T: is gNMI ycontrol session.
Definition: ses.h:604
boolean active
<hello> completed ok
Definition: ses.h:590
ses_id_t sid
session ID
Definition: ses.h:572
boolean json_1line
T: output JSON leaf-list on 1 line.
Definition: ses.h:609
uint32 cache_timeout
vir-val cache tmr in sec
Definition: ses.h:670
ses_stats_t stats
per-session statistics
Definition: ses.h:648
ses_ready_t outready
header for outreadyQ
Definition: ses.h:647
boolean reading_header
variables for SSL sessions; used by yangcli-pro
Definition: ses.h:685
boolean dbapi_system
T: is DB-API system session.
Definition: ses.h:602
boolean skip_modnames
YPW-888: new restconf cli parameter to turn strict JSON YANG enconding off, do not include module nam...
Definition: ses.h:704
boolean start_tls
T: need to start TLS session first.
Definition: ses.h:618
boolean wildcard_ok
set by yangcli when parsing an XML file and wildcard strings are allowed; read by mgr_val_parse check...
Definition: ses.h:733
uint32 inendpos
inside framing directive
Definition: ses.h:638
int32 total_length
total length
Definition: ses.h:688
boolean use_traceid
TRUE if OK to use Trace ID attr in the RPC calls.
Definition: ses.h:691
struct agt_acm_cache_t_ * acm_cache
agent access control for database reads and writes; for incoming agent <rpc> requests,...
Definition: ses.h:679
ses_ready_t inready
header for inreadyQ
Definition: ses.h:646
ncx_withdefaults_t withdef
with-defaults default
Definition: ses.h:669
ses_msg_buff_t * outbuff
current output buffer
Definition: ses.h:645
void * get_cookie
this pointer available to pass a cookie to a GET1 callback will not be freed when the scb is deleted
Definition: ses.h:712
dlq_hdr_t qhdr
queued by manager only
Definition: ses.h:564
boolean http_waitrn
T: wait for EOchunk, F: no wait.
Definition: ses.h:611
ses_write_fn_t wrfn
set if external read fn
Definition: ses.h:637
int8 indent
indent N spaces (0..9)
Definition: ses.h:666
ses_mode_t mode
session mode
Definition: ses.h:571
int fd
set if output to a socket
Definition: ses.h:635
int8 msg_indent
indent N spaces (-1..9)
Definition: ses.h:667
boolean ycontrol
T: is ycontrol session.
Definition: ses.h:600
boolean checksum_mode
T: add out byte to checksum.
Definition: ses.h:619
dlq_hdr_t snmp_getnext_listQ
SNMP pointers Q of malloced val_value struct Q of list entries with only keys in it.
Definition: ses.h:761
uint32 yang_sid_tree
SID Tree Assignment for this session.
Definition: ses.h:777
struct cfg_template_t_ * fake_candidate
a fake candidate config for target=running YANG-PATCH
Definition: ses.h:742
boolean warn_xml
T: xml warns, F: no warn.
Definition: ses.h:596
uint32 buffcnt
current buffer count
Definition: ses.h:640
boolean restconf_sse_mode
T: RESTCONF SSE mode.
Definition: ses.h:606
uint32 protocols_requested
bitmask
Definition: ses.h:566
uint16 rfc8639_notif_cnt
New subscriptions allow more than 1 per session.
Definition: ses.h:745
int tid
Thread ID representing session.
Definition: ses.h:585
xmlChar * service_name
variables for ycontrol sessions
Definition: ses.h:682
ncx_protocol_t protocol
protocol version in use
Definition: ses.h:567
boolean is_callhome
T: callhome session.
Definition: ses.h:616
FILE * fp
set if output to a file
Definition: ses.h:634
uint32 last_ch
save in case cr/lf in SSE mode
Definition: ses.h:620
boolean any_leaflist_attrs
T: leaf-list has attrs.
Definition: ses.h:613
dlq_hdr_t outQ
Q of ses_msg_buff_t.
Definition: ses.h:644
boolean chunk_based
chunked based msg body
Definition: ses.h:687
ses_id_t rollback_sid
session ID for rollback
Definition: ses.h:574
ses_instate_t instate
input state enum
Definition: ses.h:639
dlq_hdr_t msgQ
Q of ses_msg_t input.
Definition: ses.h:642
boolean dbapi
T: is DB-API session.
Definition: ses.h:601
struct obj_template_t_ * snmp_table_obj
Current SNMP walk table.
Definition: ses.h:764
ses_state_t state
session state
Definition: ses.h:570
ncx_display_mode_t in_encoding
input encoding can be different in RESTCONF, set by the Content-Type header
Definition: ses.h:626
xmlChar * start_time
dateTime start time
Definition: ses.h:578
boolean restconf_notif
REST SSE notifications in progress.
Definition: ses.h:607
ses_transport_t transport
transport type
Definition: ses.h:568
void * openssl_ctx
backptr to TLS context
Definition: ses.h:706
struct val_value_t_ * leaflist
JSON attrs backptr.
Definition: ses.h:621
boolean keep_xmlns
T: parse extern, F: msg
Definition: ses.h:595
ses_ypmode_t yp_mode
YANG-PATCH mode:
Definition: ses.h:698
xmlTextReaderPtr reader
input stream reader
Definition: ses.h:633
void * tcb
Thread control block.
Definition: ses.h:586
ses_type_t type
session type
Definition: ses.h:565
boolean notif_active
subscription active
Definition: ses.h:591
boolean file_override
set by server DB-API session to capture <rpc-reply> output to a file.
Definition: ses.h:739
void * mgrcb
if manager session, mgr_scb_t
Definition: ses.h:649
boolean remote_wait
if there is a remote operation in progress then this flag will be set so new input can be held off on...
Definition: ses.h:718
time_t last_rpc_time
used for idle timeout
Definition: ses.h:577
ses_term_reason_t termreason
termination reason
Definition: ses.h:575
boolean is_ycontrol_scb
T: is ycontrol_scb for HA.
Definition: ses.h:614
boolean noxmlns
xml-nons display-mode
Definition: ses.h:593
xmlChar * subsys_id
used for YCONTROL session only
Definition: ses.h:583
boolean dropped
T: session dropped in a msg.
Definition: ses.h:617
boolean conn_closed
T: scb IO closed last buffer.
Definition: ses.h:589
xmlChar * peeraddr
Inet address string.
Definition: ses.h:580
time_t hello_time
used for hello timeout
Definition: ses.h:576
boolean json_attrs
T: use JSON attributes.
Definition: ses.h:612
ncx_msg_encoding_t encoding
HTTP msg encoding.
Definition: ses.h:569
ncx_display_mode_t out_encoding
output encoding can be different in RESTCONF, set by the Accept header
Definition: ses.h:631
boolean ypgrpc
T: is gRPC ycontrol session.
Definition: ses.h:766
xmlChar * entry_point
REST-API entry point.
Definition: ses.h:653
ses_id_t killedbysid
killed-by session ID
Definition: ses.h:573
struct yangapi_cb_t_ * rcb
REST-API control block.
Definition: ses.h:652
Session Message Buffer.
Definition: ses.h:490
size_t buffstart
buff start pos
Definition: ses.h:492
boolean isbinary
T: CBOR, F: XML.
Definition: ses.h:496
dlq_hdr_t qhdr
not set
Definition: ses.h:491
size_t buffpos
buff cur position
Definition: ses.h:494
boolean islast
T: last buff in msg.
Definition: ses.h:495
size_t bufflen
buff actual size
Definition: ses.h:493
Session Message.
Definition: ses.h:525
dlq_hdr_t buffQ
Q of ses_msg_buff_t.
Definition: ses.h:530
size_t curchunksize
cur chunk rcvd
Definition: ses.h:532
size_t expchunksize
expected chunk size
Definition: ses.h:533
boolean dispatched
in processing
Definition: ses.h:528
dlq_hdr_t qhdr
Q header for buffcb->msgQ.
Definition: ses.h:526
boolean ready
ready for parsing
Definition: ses.h:527
ses_prolog_state_t prolog_state
for insert prolog
Definition: ses.h:531
ses_msg_buff_t * curbuff
cur position in buffQ
Definition: ses.h:529
embedded Q header for the message ready Q The 'inq' flag is used to prevent queue corruption
Definition: ses.h:509
boolean inq
flag that already in the ready Q
Definition: ses.h:517
dlq_hdr_t hdr
< embedded queue header threaded into ready Q
Definition: ses.h:511
ses_id_t sid
session ID of this session
Definition: ses.h:514
boolean ycontrol
flag YControl session for priority processing
Definition: ses.h:520
Per Session Statistics.
Definition: ses.h:434
uint32 inRpcs
netconf-state in-rpcs counter
Definition: ses.h:445
uint32 in_bytes
extra original internal in byte counter
Definition: ses.h:436
uint32 requests
internal request counters for EVAL tracking
Definition: ses.h:457
uint32 outNotifications
netconf-state out-notifications counter
Definition: ses.h:454
uint32 out_line
hack: bytes since ' ', pretty-print
Definition: ses.h:442
uint32 outRpcErrors
netconf-state out-rpc-errors counter
Definition: ses.h:451
uint32 inBadRpcs
netconf-state in-bad-rpcs counter
Definition: ses.h:448
uint32 out_bytes
extra original internal out byte counter
Definition: ses.h:439
Session Total Statistics.
Definition: ses.h:462
uint32 closed_sessions
total closed sessions
Definition: ses.h:467
uint32 inBadHellos
total in bad hello messages
Definition: ses.h:473
ses_stats_t stats
per-session stats added up for all sessions
Definition: ses.h:482
uint32 droppedSessions
total dropped sessions
Definition: ses.h:479
uint32 inSessions
total inbound sessions
Definition: ses.h:476
uint32 failed_sessions
total failed sessions
Definition: ses.h:470
uint32 active_sessions
total active sessions
Definition: ses.h:464