+struct sadb_session_id {
+ u_int16_t sadb_session_id_len;
+ u_int16_t sadb_session_id_exttype;
+ /* [0] is an arbitrary handle that means something only for requester
+ * [1] is a global session id for lookups in the kernel and racoon.
+ */
+ u_int64_t sadb_session_id_v[2];
+} __attribute__ ((aligned(8)));
+
+struct sastat {
+ u_int32_t spi; /* SPI Value, network byte order */
+ u_int32_t created; /* for lifetime */
+ struct sadb_lifetime lft_c; /* CURRENT lifetime. */
+}; // no need to align
+
+struct sadb_sastat {
+ u_int16_t sadb_sastat_len;
+ u_int16_t sadb_sastat_exttype;
+ u_int32_t sadb_sastat_dir;
+ u_int32_t sadb_sastat_reserved;
+ u_int32_t sadb_sastat_list_len;
+ /* list of struct sastat comes after */
+} __attribute__ ((aligned(8)));
+