X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsctp%2Fsctp_packet.h;h=04995aa7ee33608435df852946a08f3ad6fc4009;hb=57e53bb9a5c9ee164938a1cee6025f7044deb728;hp=3ca05b5a11e9132fbce5e6dd6de89309527c6d0f;hpb=fae4039ad2af251690e4cb79d5842a6e97029032;p=vpp.git diff --git a/src/vnet/sctp/sctp_packet.h b/src/vnet/sctp/sctp_packet.h index 3ca05b5a11e..04995aa7ee3 100644 --- a/src/vnet/sctp/sctp_packet.h +++ b/src/vnet/sctp/sctp_packet.h @@ -268,13 +268,13 @@ typedef struct #define CHUNK_FLAGS_MASK 0x00FF0000 #define CHUNK_FLAGS_SHIFT 16 -#define CHUNK_UBIT_MASK 0x000F0000 +#define CHUNK_UBIT_MASK 0x00040000 #define CHUNK_UBIT_SHIFT 18 -#define CHUNK_BBIT_MASK 0x000F0000 +#define CHUNK_BBIT_MASK 0x00020000 #define CHUNK_BBIT_SHIFT 17 -#define CHUNK_EBIT_MASK 0x000F0000 +#define CHUNK_EBIT_MASK 0x00010000 #define CHUNK_EBIT_SHIFT 16 #define CHUNK_LENGTH_MASK 0x0000FFFF @@ -513,7 +513,6 @@ vnet_sctp_calculate_padding (u16 base_length) return (4 - base_length % 4); } -#define DEFAULT_A_RWND 1480 #define INBOUND_STREAMS_COUNT 1 #define OUTBOUND_STREAMS_COUNT 1 @@ -714,7 +713,7 @@ typedef struct sctp_opt_params_hdr_t param_hdr; unsigned char mac[SHA1_OUTPUT_LENGTH]; /* RFC 2104 */ - u32 creation_time; + u64 creation_time; u32 cookie_lifespan; } sctp_state_cookie_param_t; @@ -952,7 +951,7 @@ vnet_sctp_set_hostname_address (sctp_hostname_param_t * h, char *hostname) { h->param_hdr.length = FQDN_MAX_LENGTH; h->param_hdr.type = clib_host_to_net_u16 (SCTP_HOSTNAME_ADDRESS_TYPE); - memset (h->hostname, '0', FQDN_MAX_LENGTH); + clib_memset (h->hostname, '0', FQDN_MAX_LENGTH); memcpy (h->hostname, hostname, FQDN_MAX_LENGTH); } @@ -1316,6 +1315,32 @@ typedef struct } sctp_err_cause_param_t; + +/* + * An end-point sends this chunk to its peer end-point to notify it of + * certain error conditions. It contains one or more error causes. + * An Operation Error is not considered fatal in and of itself, but may be + * used with an ABORT chunk to report a fatal condition. It has the + * following parameters: + * + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Type = 9 | Chunk Flags | Length | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * \ \ + * / one or more Error Causes / + * \ \ + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + */ +typedef struct +{ + sctp_header_t sctp_hdr; + sctp_chunks_common_hdr_t chunk_hdr; + sctp_err_cause_param_t err_causes[]; + +} sctp_operation_error_t; + /* * Abort Association (ABORT) *