aboutsummaryrefslogtreecommitdiffstats
path: root/src/sctp.c
blob: 7f4f54b8fe8b2ac02040310285063378b821587a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <netinet/sctp.h>
#include <osmocom/netif/sctp.h>

const struct value_string osmo_sctp_assoc_chg_strs[] = {
	{ SCTP_COMM_UP,		"COMM_UP" },
	{ SCTP_COMM_LOST,	"COMM_LOST" },
	{ SCTP_RESTART,		"RESTART" },
	{ SCTP_SHUTDOWN_COMP,	"SHUTDOWN_COMP" },
	{ SCTP_CANT_STR_ASSOC,	"CANT_STR_ASSOC" },
	{ 0, NULL }
};

const struct value_string osmo_sctp_paddr_chg_strs[] = {
	{ SCTP_ADDR_AVAILABLE,		"ADDR_AVAILABLE" },
	{ SCTP_ADDR_UNREACHABLE,	"ADDR_UNREACHABLE" },
	{ SCTP_ADDR_REMOVED,		"ADDR_REMOVED" },
	{ SCTP_ADDR_ADDED,		"ADDR_ADDED" },
	{ SCTP_ADDR_MADE_PRIM,		"ADDR_MADE_PRIM" },
	{ SCTP_ADDR_CONFIRMED,		"ADDR_CONFIRMED" },
#ifdef SCTP_ADDR_PF
	{ SCTP_ADDR_PF,	"ADDR_POTENTIALLY_FAILED" },
#endif
	{ 0, NULL }
};

const struct value_string osmo_sctp_sn_type_strs[] = {
	{ SCTP_ASSOC_CHANGE,		"ASSOC_CHANGE" },
	{ SCTP_PEER_ADDR_CHANGE,	"PEER_ADDR_CHANGE" },
	{ SCTP_SHUTDOWN_EVENT, 		"SHUTDOWN_EVENT" },
	{ SCTP_SEND_FAILED,		"SEND_FAILED" },
	{ SCTP_REMOTE_ERROR,		"REMOTE_ERROR" },
	{ SCTP_PARTIAL_DELIVERY_EVENT,	"PARTIAL_DELIVERY_EVENT" },
	{ SCTP_ADAPTATION_INDICATION,	"ADAPTATION_INDICATION" },
#ifdef SCTP_AUTHENTICATION_INDICATION
	{ SCTP_AUTHENTICATION_INDICATION, "AUTHENTICATION_INDICATION" },
#endif
#ifdef SCTP_SENDER_DRY_EVENT
	{ SCTP_SENDER_DRY_EVENT,	"SENDER_DRY_EVENT" },
#endif
	{ 0, NULL }
};


const struct value_string osmo_sctp_sn_error_strs[] = {
	{ SCTP_FAILED_THRESHOLD,	"FAILED_THRESHOLD" },
	{ SCTP_RECEIVED_SACK,		"RECEIVED_SACK" },
	{ SCTP_HEARTBEAT_SUCCESS,	"HEARTBEAT_SUCCESS" },
	{ SCTP_RESPONSE_TO_USER_REQ,	"RESPONSE_TO_USER_REQ" },
	{ SCTP_INTERNAL_ERROR,		"INTERNAL_ERROR" },
	{ SCTP_SHUTDOWN_GUARD_EXPIRES,	"SHUTDOWN_GUARD_EXPIRES" },
	{ SCTP_PEER_FAULTY,		"PEER_FAULTY" },
	{ 0, NULL }
};

/* rfc4960 section 3.3.10 "Operation Error", in host byte order */
const struct value_string osmo_sctp_op_error_strs[] = {
	{ OSMO_SCTP_OP_ERR_INVALID_STREAM_ID,	"Invalid Stream Identifier" },
	{ OSMO_SCTP_OP_ERR_MISS_MAND_PARAM,	"Missing Mandatory Parameter" },
	{ OSMO_SCTP_OP_ERR_STALE_COOKIE,	"Stale Cookie Error" },
	{ OSMO_SCTP_OP_ERR_NO_RESOURCES,	"Out of Resource" },
	{ OSMO_SCTP_OP_ERR_UNRESOLV_ADDR,	"Unresolvable Address" },
	{ OSMO_SCTP_OP_ERR_UNKN_CHUNK_TYPE,	"Unrecognized Chunk Type" },
	{ OSMO_SCTP_OP_ERR_INVALID_MAND_PARAM,	"Invalid Mandatory Parameter" },
	{ OSMO_SCTP_OP_ERR_UNKN_PARAM,		"Unrecognized Parameters" },
	{ OSMO_SCTP_OP_ERR_NO_USER_DATA,	"No User Data" },
	{ OSMO_SCTP_OP_ERR_COOKIE_RX_WHILE_SHUTDOWN,	"Cookie Received While Shutting Down" },
	{ OSMO_SCTP_OP_ERR_RESTART_ASSC_NEW_ADDR,	"Restart of an Association with New Addresses" },
	{ OSMO_SCTP_OP_ERR_UNER_INITED_ABORT,	"User Initiated Abort" },
	{ OSMO_SCTP_OP_ERR_PROTO_VERSION,	"Protocol Violation" },
	{ 0, NULL }
};