44 #include <xmlreader.h> 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 222 #define SES_NULL_SID 0 232 #define SES_MSG_BUFFSIZE 1000 238 #define SES_MAX_BUFFERS 500000 242 #define SES_MAX_FREE_BUFFERS 4 244 #define SES_MAX_FREE_BUFFERS 32 248 #define SES_MAX_BUFFSEND 32 251 #define SES_MAX_BYTESEND 0xffff 254 #define SES_DEF_LINESIZE 72 257 #define SES_MAX_STARTCHUNK_SIZE 13 260 #define SES_MAX_CHUNKNUM_SIZE 10 273 #define SES_STARTCHUNK_PAD 10 278 #define SES_ENDCHUNK_PAD 8 281 #define SES_READBUFF_SIZE 1000 284 #define SES_GET_YPMODE(S) (S)->yp_mode 287 #define SES_SET_YPMODE(S,V) (S)->yp_mode = V 290 #define SES_REMOTE_WAIT(S) (S)->remote_wait 293 #define SES_NEED_FILE_OVERRIDE(S) ((S)->file_override && (S)->fp) 296 #define SES_SYSTEM_USERNAME NCX_EL_SYSTEM 309 typedef enum ses_ypmode_t_ {
318 typedef enum ses_type_t_ {
330 typedef enum ses_transport_t_ {
344 SES_TRANSPORT_COAP_DTLS,
352 typedef enum ses_state_t_ {
366 typedef enum ses_instate_t_ {
377 typedef enum ses_mode_t_ {
387 typedef enum ses_term_reason_t_ {
400 typedef enum ses_prolog_state_t_ {
414 typedef struct ses_stats_t_ {
442 typedef struct ses_total_stats_t_ {
470 typedef struct ses_msg_buff_t_ {
488 typedef struct ses_ready_t_ {
504 typedef struct ses_msg_t_ {
542 typedef struct ses_cb_t_ {
631 struct yangapi_cb_t_ *
rcb;
703 dlq_hdr_t breadcrumbQ;
740 dlq_hdr_t snmp_getnext_listQ;
809 #if defined(WITH_SNMP) && defined(WITH_RESTCONF) 1113 extern const xmlChar *
1150 const xmlChar *fname);
1162 const xmlChar *fname);
1183 extern ses_transport_t
1193 extern ses_transport_t
1203 extern const xmlChar *
1215 extern const xmlChar *
1298 boolean rawxml_mode);
1314 boolean rawxml_mode,
1315 boolean keep_xmlns);
1331 boolean rawxml_mode);
1347 boolean rawxml_mode,
1348 boolean keep_xmlns);
1393 int32 indent_amount);
1422 uint32 fillbuffsize,
1555 extern const xmlChar *
1568 const xmlChar *point);
1632 struct obj_template_t_ *obj);
1663 const xmlChar *filespec);
1698 uint32 *checksum_cnt);
YumaWorks NETCONF over TCP.
Definition: ses.h:338
void ses_putchar(ses_cb_t *scb, uint32 ch)
Write one char to the session, without any translation.
Definition: ses.c:2375
status_t ses_set_control_session(ses_cb_t *scb)
Set the specified session as a control session.
Definition: ses.c:4419
boolean dispatched
in processing
Definition: ses.h:507
uint32 readbuffsize
input buffer size
Definition: ses.h:642
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:4969
dlq provides general double-linked list and queue support:
boolean ses_is_grpc_control_session(ses_cb_t *scb)
Check if the specified session is a gRPC control session.
Definition: ses.c:5131
ses_id_t sid
session ID of this session
Definition: ses.h:493
uint32 cache_timeout
vir-val cache tmr in sec
Definition: ses.h:649
void ses_put_extern(ses_cb_t *scb, const xmlChar *fname)
write the contents of a file to the session
Definition: ses.c:3558
ses_mode_t
Session Output Mode.
Definition: ses.h:377
ses_id_t rollback_sid
session ID for rollback
Definition: ses.h:553
Session Message.
Definition: ses.h:504
boolean ses_notifications_active(const ses_cb_t *scb)
Check if the session has notifications active.
Definition: ses.c:4838
boolean ycontrol
flag YControl session for priority processing
Definition: ses.h:499
ses_ypmode_t
YANG-PATCH Mode.
Definition: ses.h:309
boolean http_waitrn
T: wait for EOchunk, F: no wait.
Definition: ses.h:590
void ses_indent(ses_cb_t *scb, int32 indent)
Write the proper newline + indentation to the specified session.
Definition: ses.c:2790
struct yangapi_cb_t_ * rcb
REST-API control block.
Definition: ses.h:631
ses_total_stats_t * ses_get_total_stats(void)
Get a r/w pointer to the the session totals stats.
Definition: ses.c:3614
boolean restconf_notif
REST SSE notifications in progress.
Definition: ses.h:586
boolean active
<hello> completed ok
Definition: ses.h:569
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:2588
uint32 linesize
TERM line length.
Definition: ses.h:647
YumaPro CLI hook (ncxconnect, NETCONF framing)
Definition: ses.h:340
initialization state
Definition: ses.h:354
RESTCONF over SNMP.
Definition: ses.h:324
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:2544
boolean any_leaflist_attrs
T: leaf-list has attrs.
Definition: ses.h:592
xmlChar * entry_point
REST-API entry point.
Definition: ses.h:632
not set
Definition: ses.h:388
status_t ses_set_file_override(ses_cb_t *scb, const xmlChar *filespec)
Setup the session in file write override mode.
Definition: ses.c:4935
RESTCONF Capabilities processing.
Definition: ses.h:357
void ses_set_out_encoding(ses_cb_t *scb, ncx_display_mode_t encoding)
Set the output encoding.
Definition: ses.c:4138
size_t buffpos
buff cur position
Definition: ses.h:474
xmlTextReaderPtr reader
input stream reader
Definition: ses.h:612
uint32 inendpos
inside framing directive
Definition: ses.h:617
boolean restconf_sse_mode
T: RESTCONF SSE mode.
Definition: ses.h:585
ses_id_t killedbysid
killed-by session ID
Definition: ses.h:552
status_t ses_set_entry_point(ses_cb_t *scb, const xmlChar *point)
Set the RESTCONF entry_point.
Definition: ses.c:4721
struct val_value_t_ * leaflist
JSON attrs backptr.
Definition: ses.h:600
ncx_msg_encoding_t encoding
HTTP msg encoding.
Definition: ses.h:548
boolean ready
ready for parsing
Definition: ses.h:506
ses_stats_t stats
per-session stats added up for all sessions
Definition: ses.h:462
void * openssl_ssl
malloced with SSL_new
Definition: ses.h:686
boolean use_traceid
TRUE if OK to use Trace ID attr in the RPC calls.
Definition: ses.h:670
xmlChar * subsys_id
used for YCONTROL session only
Definition: ses.h:562
boolean sse_mode
T: Server Sent Events, F: normal.
Definition: ses.h:582
boolean stream_output
buffer/stream svr
Definition: ses.h:571
ses_cb_t * ses_new_dummy_scb(void)
Create a new dummy session control block.
Definition: ses.c:2121
ses_state_t
Session States.
Definition: ses.h:352
boolean ses_is_system_session(ses_cb_t *scb)
Check if the specified session is an internal system session.
Definition: ses.c:4495
size_t bufflen
buff actual size
Definition: ses.h:473
boolean dropped
T: session dropped in a msg.
Definition: ses.h:596
boolean dbapi
T: is DB-API session.
Definition: ses.h:580
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:4112
internal YControl session w/ subsystem
Definition: ses.h:322
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:4234
status_t ses_accept_input(ses_cb_t *scb)
The IO input handler for the ncxserver loop.
Definition: ses.c:3237
boolean ses_is_gnmi_session(ses_cb_t *scb)
Check if the specified session is a gNMI session.
Definition: ses.c:4819
boolean ycontrol
T: is ycontrol session.
Definition: ses.h:579
uint32 out_line
hack: bytes since ' ', pretty-print
Definition: ses.h:422
ses_term_reason_t termreason
termination reason
Definition: ses.h:554
boolean json_attrs
T: use JSON attributes.
Definition: ses.h:591
ncx_display_mode_t out_encoding
output encoding can be different in RESTCONF, set by the Accept header
Definition: ses.h:610
ses_state_t state
session state
Definition: ses.h:549
Per Session Statistics.
Definition: ses.h:414
idle state
Definition: ses.h:368
boolean content_length_based
content len based msg body
Definition: ses.h:665
boolean reading_header
variables for SSL sessions; used by yangcli-pro
Definition: ses.h:664
dropped by remote peer
Definition: ses.h:391
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:2668
starting in the EOM field
Definition: ses.h:370
boolean chunk_based
chunked based msg body
Definition: ses.h:666
uint32 ses_id_t
Session ID.
Definition: ses.h:306
void ses_putcchar(ses_cb_t *scb, uint32 ch)
Write one content char to the session, with translation as needed.
Definition: ses.c:2626
ncx_display_mode_t ses_get_out_encoding(ses_cb_t *scb)
Get the output encoding.
Definition: ses.c:4180
uint16 rfc8639_notif_cnt
New subscriptions allow more than 1 per session.
Definition: ses.h:724
not set
Definition: ses.h:378
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:4157
ncx_protocol_t ses_get_protocol(const ses_cb_t *scb)
Get the NETCONF protocol set (or unset) for this session.
Definition: ses.c:3908
ses_term_reason_t
Session Termination reason.
Definition: ses.h:387
boolean rawxml_mode
T: expand_anyxml, F: normal.
Definition: ses.h:576
int32 ses_add_indent(ses_cb_t *scb, int32 indent)
Add in the new indent amount.
Definition: ses.c:4569
boolean ses_is_control_session(ses_cb_t *scb)
Check if the specified session is a control session.
Definition: ses.c:4440
ses_prolog_state_t prolog_state
for insert prolog
Definition: ses.h:510
NETCONF over TLS.
Definition: ses.h:346
YANGAPI/RESTCONF over TLS.
Definition: ses.h:336
status_t ses_set_protocol(ses_cb_t *scb, ncx_protocol_t proto)
set the NETCONF protocol version in use
Definition: ses.c:3834
ses_transport_t ses_get_transport_enum(const xmlChar *str)
Get the enum value for the yumaworks-types:transport-type.
Definition: ses.c:3756
uint32 active_sessions
total active sessions
Definition: ses.h:444
boolean keep_xmlns
T: parse extern, F: msg.
Definition: ses.h:574
bad session start
Definition: ses.h:394
uint32 outNotifications
netconf-state out-notifications counter
Definition: ses.h:434
text mode
Definition: ses.h:382
ses_ready_t outready
header for outreadyQ
Definition: ses.h:626
CoAP UDP socket.
Definition: ses.h:343
internal session for rollback, etc.
Definition: ses.h:321
ses_cb_t * ses_new_scb(void)
Create a new session control block.
Definition: ses.c:2046
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:4532
void ses_free_scb(ses_cb_t *scb)
Free a session control block.
Definition: ses.c:2242
boolean ses_protocol_requested(ses_cb_t *scb, ncx_protocol_t proto)
check if the NETCONF protocol version was requested
Definition: ses.c:3972
uint32 checksum_cnt
byte count
Definition: ses.h:728
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:4269
int8 indent
indent N spaces (0..9)
Definition: ses.h:645
session shutdown requested
Definition: ses.h:360
boolean ypgrpc
T: is gRPC ycontrol session.
Definition: ses.h:745
ses_mode_t mode
session mode
Definition: ses.h:550
struct agt_acm_cache_t_ * acm_cache
agent access control for database reads and writes; for incoming agent <rpc> requests, the access control cache is used to minimize data structure processing during authorization procedures in agt/agt_acm.c there is a back-ptr embedded in the XML header so it can be easily passed to the agt_val and xml_wr functions
Definition: ses.h:658
boolean json_1line
T: output JSON leaf-list on 1 line.
Definition: ses.h:588
boolean is_ipv6
T: using IPv6 address, F: IPv4.
Definition: ses.h:594
boolean islast
T: last buff in msg.
Definition: ses.h:475
int32 ses_dec_indent(ses_cb_t *scb, int32 indent)
Remove the specified indent amount.
Definition: ses.c:4603
void ses_set_protocols_requested(ses_cb_t *scb, ncx_protocol_t proto)
set the NETCONF protocol versions requested
Definition: ses.c:3929
size_t expchunksize
expected chunk size
Definition: ses.h:512
int ses_read_cb(void *context, char *buffer, int len)
The IO input front-end for the xmlTextReader parser read fn.
Definition: ses.c:3115
YANG module data structures Many internal representations of YANG module constructs.
const xmlChar * ses_get_entry_point(ses_cb_t *scb)
Get the RESTCONF entry_point.
Definition: ses.c:4696
boolean notif_active
subscription active
Definition: ses.h:570
ses_mode_t ses_get_mode(ses_cb_t *scb)
Get the output mode for the specified session.
Definition: ses.c:2936
int tid
Thread ID representing session.
Definition: ses.h:564
int8 msg_indent
indent N spaces (-1..9)
Definition: ses.h:646
boolean ses_dropped_ex(ses_cb_t *scb)
Check if the session has been dropped by the client.
Definition: ses.c:5059
boolean checksum_mode
T: add out byte to checksum.
Definition: ses.h:598
embedded Q header for the message ready Q The 'inq' flag is used to prevent queue corruption ...
Definition: ses.h:488
xmlChar * username
user ID
Definition: ses.h:558
uint32 inBadHellos
total in bad hello messages
Definition: ses.h:453
int32 ses_message_indent_count(const ses_cb_t *scb)
Get the message indent count for this session.
Definition: ses.c:2844
not used
Definition: ses.h:335
not set
Definition: ses.h:367
ssize_t(* ses_read_fn_t)(void *s, char *buff, size_t bufflen, bool *erragain)
optional read function for the session
Definition: ses.h:526
int32 total_length
total length
Definition: ses.h:667
boolean is_callhome
T: callhome session.
Definition: ses.h:595
ses_stats_t stats
per-session statistics
Definition: ses.h:627
boolean conn_closed
T: scb IO closed last buffer.
Definition: ses.h:568
struct obj_template_t_ * snmp_table_obj
Current SNMP walk table.
Definition: ses.h:743
ses_msg_buff_t * curbuff
cur position in buffQ
Definition: ses.h:508
adble to accept requests
Definition: ses.h:358
ses_transport_t
NETCONF Transport Types.
Definition: ses.h:330
time_t hello_time
used for hello timeout
Definition: ses.h:555
boolean noxmlns
xml-nons display-mode
Definition: ses.h:572
boolean ses_is_gnmi_control_session(ses_cb_t *scb)
Check if the specified session is a gNMI control session.
Definition: ses.c:4777
xmlChar * readbuff
input buffer for session
Definition: ses.h:641
size_t curchunksize
cur chunk rcvd
Definition: ses.h:511
boolean start_tls
T: need to start TLS session first.
Definition: ses.h:597
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:697
boolean ses_is_grpc_session(ses_cb_t *scb)
Check if the specified session is a gRPC session.
Definition: ses.c:5173
ses_cb_t * ses_new_coap_scb(void)
Create a new global CoAP session control block.
Definition: ses.c:2153
session shutting down
Definition: ses.h:361
uint32 inSessions
total inbound sessions
Definition: ses.h:456
void ses_set_xml_nons(ses_cb_t *scb)
force xmlns attributes to be skipped in XML mode
Definition: ses.c:3795
SNMP UDP socket.
Definition: ses.h:345
void ses_set_mode(ses_cb_t *scb, ses_mode_t mode)
Set the output mode for the specified session.
Definition: ses.c:2917
XML mode.
Definition: ses.h:379
void ses_start_msg_mode(ses_cb_t *scb)
Set the message output mode to active.
Definition: ses.c:2954
void * mgrcb
if manager session, mgr_scb_t
Definition: ses.h:628
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:4202
status_t(* ses_write_fn_t)(void *s)
optional write function for the session
Definition: ses.h:538
RESTCONF Entry point processing.
Definition: ses.h:356
void ses_start_checksum(ses_cb_t *scb)
Clear the checksum field and start checksum mode.
Definition: ses.c:4993
boolean locks_released
Signal release point in kill.
Definition: ses.h:566
#define TSTAMP_MIN_SIZE
normal minimum buffer size for a tstamp buffer
Definition: tstamp.h:67
void ses_set_grpc_session(ses_cb_t *scb)
Set the specified session as a gRPC session.
Definition: ses.c:5154
struct rpc_msg_t_ * cur_rpc_msg
for SIL-SA get callback
Definition: ses.h:629
XML documentation mode.
Definition: ses.h:380
int fd
set if output to a socket
Definition: ses.h:614
uint32 outRpcErrors
netconf-state out-rpc-errors counter
Definition: ses.h:431
ses_transport_t ses_get_transport(ses_cb_t *scb)
Get the transport enum for a given session.
Definition: ses.c:3632
Session Control Block.
Definition: ses.h:542
HTML mode.
Definition: ses.h:381
any network configuration protocol
Definition: ses.h:320
ncx_display_mode_t
enumeration of val_dump_value display modes
Definition: ncxtypes.h:599
status_t
global error return code
Definition: status_enum.h:186
boolean dbapi_system
T: is DB-API system session.
Definition: ses.h:581
void ses_stop_msg_mode(ses_cb_t *scb)
Set the message output mode to inactive.
Definition: ses.c:2972
uint32 out_bytes
extra original internal out byte counter
Definition: ses.h:419
void ses_set_indent(ses_cb_t *scb, int32 indent)
Set the logging indent count for this session.
Definition: ses.c:2862
boolean inq
flag that already in the ready Q
Definition: ses.h:496
RESTCONF mode.
Definition: ses.h:312
kill-session
Definition: ses.h:390
ses_read_fn_t rdfn
set if external write fn
Definition: ses.h:615
ses_prolog_state_t
prolog parsing state
Definition: ses.h:400
ncx_withdefaults_t ses_withdef(const ses_cb_t *scb)
Get the with-defaults value for this session.
Definition: ses.c:3515
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:712
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:4513
boolean ses_get_xml_nons(const ses_cb_t *scb)
force xmlns attributes to be skipped in XML mode
Definition: ses.c:3815
uint32 inBadRpcs
netconf-state in-bad-rpcs counter
Definition: ses.h:428
size_t buffstart
buff start pos
Definition: ses.h:472
uint32 inRpcs
netconf-state in-rpcs counter
Definition: ses.h:425
void ses_set_gnmi_session(ses_cb_t *scb)
Set the specified session as a gNMI session.
Definition: ses.c:4800
#define SES_MAX_STARTCHUNK_SIZE
max size of a valid base:1.1 chunk header start tag
Definition: ses.h:257
GNMI Internal processing over RESTCONF.
Definition: ses.h:347
waiting
Definition: ses.h:402
Global error messages for status code enumerations.
not set
Definition: ses.h:310
uint32 protocols_requested
bitmask
Definition: ses.h:545
void ses_set_message_indent(ses_cb_t *scb, int32 indent)
Set the message indent count for this session.
Definition: ses.c:2889
waiting for peer <hello>
Definition: ses.h:355
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:691
ses_msg_buff_t * outbuff
current output buffer
Definition: ses.h:624
boolean ses_dropped(const ses_cb_t *scb)
Check if the session has been dropped by the client.
Definition: ses.c:4914
ncx_protocol_t protocol
protocol version in use
Definition: ses.h:546
not set
Definition: ses.h:353
ses_cb_t * ses_new_snmp_scb(void)
Create a new global SNMP session control block.
Definition: ses.c:2206
void * openssl_ctx
backptr to TLS context
Definition: ses.h:685
void ses_finish_msg(ses_cb_t *scb)
Finish an outbound message on the specified session.
Definition: ses.c:3035
ncx_display_mode_t in_encoding
input encoding can be different in RESTCONF, set by the Content-Type header
Definition: ses.h:605
void ses_set_dbapi_session(ses_cb_t *scb)
Set the specified session as a DB-API control session.
Definition: ses.c:4458
in between 2 messages
Definition: ses.h:371
NETCONF over SSH (RFC 4742 and 6242)
Definition: ses.h:332
status_t ses_start_msg(ses_cb_t *scb)
Start a new outbound message on the specified session.
Definition: ses.c:2992
uint32 checksum
running checksum for YANG Push Simulated Operational mode
Definition: ses.h:727
bad <hello> received
Definition: ses.h:395
not used
Definition: ses.h:333
uint32 buffcnt
current buffer count
Definition: ses.h:619
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:4056
Session Total Statistics.
Definition: ses.h:442
uint32 failed_sessions
total failed sessions
Definition: ses.h:450
boolean skip_modnames
YPW-888: new restconf cli parameter to turn strict JSON YANG enconding off, do not include module nam...
Definition: ses.h:683
void ses_init_coap_scb(ses_cb_t *scb)
Initialize a CoAP session control block.
Definition: ses.c:2174
processing a request
Definition: ses.h:359
const xmlChar * ses_state_name(ses_state_t state)
Get the name of a session state from the enum value.
Definition: ses.c:3473
ses_type_t
Session Types.
Definition: ses.h:318
boolean ypgnmi
T: is gNMI ycontrol session.
Definition: ses.h:583
ses_write_fn_t wrfn
set if external read fn
Definition: ses.h:616
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:3536
ses_instate_t
Session Input Handler States for base:1.0 EOM processing.
Definition: ses.h:366
status_t ses_set_gnmi_control_session(ses_cb_t *scb)
Set the specified session as a gNMI control session.
Definition: ses.c:4754
boolean http_chunk_mode
T: send HTTP chunks, F: normal.
Definition: ses.h:589
status_t ses_put_extern2(ses_cb_t *scb, const xmlChar *fname)
write the contents of a file to the session
Definition: ses.c:3581
ses_transport_t transport
transport type
Definition: ses.h:547
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:2722
inactivity timeout
Definition: ses.h:392
ncx_msg_encoding_t
enumeration for message encoding formats
Definition: ncxtypes.h:625
xmlChar * service_name
variables for ycontrol sessions
Definition: ses.h:661
void * tcb
Thread control block.
Definition: ses.h:565
RESTCONF over CoAP; static socket, libcoap.
Definition: ses.h:323
boolean file_override
set by server DB-API session to capture <rpc-reply> output to a file.
Definition: ses.h:718
NETCONF mode.
Definition: ses.h:313
boolean is_ycontrol_scb
T: is ycontrol_scb for HA.
Definition: ses.h:593
FILE * fp
set if output to a file
Definition: ses.h:613
ncx_protocol_t
NCX session protocol versions supported.
Definition: ncxtypes.h:935
uint32 in_bytes
extra original internal in byte counter
Definition: ses.h:416
not set
Definition: ses.h:331
ses_instate_t instate
input state enum
Definition: ses.h:618
xmlChar * start_time
dateTime start time
Definition: ses.h:557
other
Definition: ses.h:393
void ses_clear_extern_xml_mode(ses_cb_t *scb, boolean rawxml_mode)
Clear the scb from external XML parsing.
Definition: ses.c:4088
not set
Definition: ses.h:319
not used
Definition: ses.h:334
struct cfg_template_t_ * fake_candidate
a fake candidate config for target=running YANG-PATCH
Definition: ses.h:721
RESTCONF over GNMI.
Definition: ses.h:325
ses_ypmode_t yp_mode
YANG-PATCH mode:
Definition: ses.h:677
ending the EOM field
Definition: ses.h:372
void ses_clear_dbapi_system_session(ses_cb_t *scb)
Clear a session of the DB-API system status.
Definition: ses.c:4548
void ses_clean_breadcrumbQ(ses_cb_t *scb)
Clean the breadcrumbQ.
Definition: ses.c:4895
not used YumaPro WEBui (ncxconnect, no framing)
Definition: ses.h:341
uint32 droppedSessions
total dropped sessions
Definition: ses.h:459
const xmlChar * ses_get_transport_name(ses_transport_t transport)
Get the name of the transport for a given enum value.
Definition: ses.c:3652
ncxserver.sock AF_LOCAL socket – control msg
Definition: ses.h:342
ncx_withdefaults_t
enum for with-defaults enum values
Definition: ncxtypes.h:1164
in message body
Definition: ses.h:369
boolean framing11
T: base:1.1, F: base:1.0.
Definition: ses.h:573
boolean warn_xml
T: xml warns, F: no warn.
Definition: ses.h:575
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:2508
close-session
Definition: ses.h:389
not set
Definition: ses.h:401
uint32 last_ch
save in case cr/lf in SSE mode
Definition: ses.h:599
boolean ses_is_dbapi_session(ses_cb_t *scb)
Check if the specified session is a DB-API control session.
Definition: ses.c:4477
void ses_set_extern_xml_mode(ses_cb_t *scb, boolean rawxml_mode)
Setup the scb for external XML parsing.
Definition: ses.c:4033
#define SES_MSG_BUFFSIZE
controls the size of each buffer chunk
Definition: ses.h:232
ses_id_t sid
session ID
Definition: ses.h:551
xmlChar * peeraddr
Inet address string.
Definition: ses.h:559
uint32 freecnt
current freeQ count
Definition: ses.h:620
boolean direct_mode
T: yp-shell, F: normal.
Definition: ses.h:577
status_t ses_start_http_chunk_mode(ses_cb_t *scb)
Start outputting buffers in HTTP 1.1 chunk mode.
Definition: ses.c:4659
uint32 ses_finish_checksum(ses_cb_t *scb, uint32 *checksum_cnt)
Stop checksum mode and return the final checksum.
Definition: ses.c:5020
ncx_msg_encoding_t ses_get_msg_encoding(const ses_cb_t *scb)
Get the message encoding for the HTTP session.
Definition: ses.c:4639
uint32 closed_sessions
total closed sessions
Definition: ses.h:447
time_t last_rpc_time
used for idle timeout
Definition: ses.h:556
YumaPro REST API ncxconnect, no framing.
Definition: ses.h:339
Session Message Buffer.
Definition: ses.h:470
status_t ses_add_breadcrumb_obj(ses_cb_t *scb, struct obj_template_t_ *obj)
Add an object to the breadcrumbQ.
ncx_withdefaults_t withdef
with-defaults default
Definition: ses.h:648
tail-f NETCONF over TCP
Definition: ses.h:337
int32 ses_indent_count(const ses_cb_t *scb)
Get the logging indent count for this session.
Definition: ses.c:2823
ses_ready_t inready
header for inreadyQ
Definition: ses.h:625
status_t ses_set_grpc_control_session(ses_cb_t *scb)
Set the specified session as a gRPC control session.
Definition: ses.c:5108
ses_msg_t * curmsg
pointer to current message to read set by agt only
Definition: ses.h:706
boolean msg_mode
T:msg-indent F:indent.
Definition: ses.h:578
ses_type_t type
session type
Definition: ses.h:544
uint32 requests
internal request counters for EVAL tracking
Definition: ses.h:437
YP-HA mode.
Definition: ses.h:311
void ses_putstr(ses_cb_t *scb, const xmlChar *str)
Write a zero-terminated string to the session.
Definition: ses.c:2482
done
Definition: ses.h:403
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:3710