zephyr/subsys/shell/backends/shell_telnet_protocol.h

126 lines
3.0 KiB
C

/*
* Copyright (c) 2017 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
* @brief Telnet console protocol specific defines
*
*
* This defines the Telnet codes, all prefixed as NVT_
* (NVT: Network Virtual Terminal, see rfc854)
*/
#ifndef SHELL_TELNET_PROTOCOL_H__
#define SHELL_TELNET_PROTOCOL_H__
/** Printer/Keyboard codes */
/* Mandatory ones */
#define NVT_NUL 0
#define NVT_LF 10
#define NVT_CR 13
/* Optional ones */
#define NVT_BEL 7
#define NVT_BS 8
#define NVT_HT 9
#define NVT_VT 11
#define NVT_FF 12
/* Telnet commands */
#define NVT_CMD_SE 240
#define NVT_CMD_NOP 241
#define NVT_CMD_DM 242
#define NVT_CMD_BRK 243
#define NVT_CMD_IP 244
#define NVT_CMD_AO 245
#define NVT_CMD_AYT 246
#define NVT_CMD_EC 247
#define NVT_CMD_EL 248
#define NVT_CMD_GA 249
#define NVT_CMD_SB 250
#define NVT_CMD_WILL 251
#define NVT_CMD_WILL_NOT 252
#define NVT_CMD_DO 253
#define NVT_CMD_DO_NOT 254
#define NVT_CMD_IAC 255
/* Telnet options */
#define NVT_OPT_TX_BIN 0
#define NVT_OPT_ECHO 1
#define NVT_OPT_RECONNECT 2
#define NVT_OPT_SUPR_GA 3
#define NVT_OPT_MSG_SZ_NEG 4
#define NVT_OPT_STATUS 5
#define NVT_OPT_TIMING_MARK 6
#define NVT_OPT_REMOTE_CTRL_TRANS_ECHO 7
#define NVT_OPT_OUT_LINE_WIDTH 8
#define NVT_OPT_OUT_PAGE_SZ 9
#define NVT_OPT_NEG_CR 10
#define NVT_OPT_NEG_HT 11
#define NVT_OPT_NAOHTD 12
#define NVT_OPT_NEG_OUT_FF 13
#define NVT_OPT_NEG_VT 14
#define NVT_OPT_NEG_OUT_VT 15
#define NVT_OPT_NET_OUT_LF 16
#define NVT_OPT_EXT_ASCII 17
#define NVT_OPT_LOGOUT 18
#define NVT_OPT_BYTE_MACRO 19
#define NVT_OPT_DATA_ENTRY 20
#define NVT_OPT_SUPDUP 21
#define NVT_OPT_SUPDUP_OUT 22
#define NVT_OPT_SEND_LOC 23
#define NVT_OPT_TERM_TYPE 24
#define NVT_OPT_EOR 25
#define NVT_OPT_TACACS_UID 26
#define NVT_OPT_OUT_MARK 27
#define NVT_OPT_TTYLOC 28
#define NVT_OPT_3270 29
#define NVT_OPT_X_3_PAD 30
#define NVT_OPT_NAWS 31
#define NVT_OPT_TERM_SPEED 32
#define NVT_OPT_REMOTE_FC 33
#define NVT_OPT_LINEMODE 34
#define NVT_OPT_X_LOC 35
#define NVT_OPT_ENV 36
#define NVT_OPT_AUTH 37
#define NVT_OPT_ENCRYPT_OPT 38
#define NVT_OPT_NEW_ENV 39
#define NVT_OPT_TN3270E 40
#define NVT_OPT_XAUTH 41
#define NVT_OPT_CHARSET 42
#define NVT_OPT_RSP 43
#define NVT_OPT_COM_PORT_CTRL 44
#define NVT_OPT_SUPR_LOCAL_ECHO 45
#define NVT_OPT_START_TLS 46
#define NVT_OPT_KERMIT 47
#define NVT_OPT_SEND_URL 48
#define NVT_OPT_FORWARD_X 49
#define NVT_OPT_PRAGMA_LOGON 138
#define NVT_OPT_SSPI_LOGON 139
#define NVT_OPT_PRAGMA_HB 140
#define NVT_OPT_EXT_OPT_LIST 255
/** Describes a telnet command */
struct telnet_simple_command {
/** Mandatory IAC code */
uint8_t iac;
/** Type of operation (see Telnet commands above) */
uint8_t op;
/** Option code */
uint8_t opt;
};
static inline void telnet_command_cpy(struct telnet_simple_command *dst,
struct telnet_simple_command *src)
{
dst->iac = src->iac;
dst->op = src->op;
dst->opt = src->opt;
}
#endif /* SHELL_TELNET_PROTOCOL_H__ */