tcp: timestamp adjustment
[vpp.git] / src / vnet / sctp / sctp_packet.h
index 8109efc..04995aa 100644 (file)
@@ -713,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;
@@ -951,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);
 }
 
@@ -1315,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)
  *