From: Phil Sutter > Sent: 03 August 2016 22:23 > This is required to correctly interpret INET_DIAG_INFO messages exported > by sctp_diag module. ... > diff --git a/include/linux/sctp.h b/include/linux/sctp.h > index de1f64318fc4e..fcb4c36461732 100644 > --- a/include/linux/sctp.h > +++ b/include/linux/sctp.h > @@ -705,70 +705,6 @@ typedef struct sctp_auth_chunk { > sctp_authhdr_t auth_hdr; > } __packed sctp_auth_chunk_t; > > -struct sctp_info { > - __u32 sctpi_tag; ... > - __u32 __reserved3; > -}; > - > struct sctp_infox { > struct sctp_info *sctpinfo; > struct sctp_association *asoc; > diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h > index d304f4c9792c4..a406adcc0793e 100644 > --- a/include/uapi/linux/sctp.h > +++ b/include/uapi/linux/sctp.h > @@ -944,4 +944,68 @@ struct sctp_default_prinfo { > __u16 pr_policy; > }; > > +struct sctp_info { > + __u32 sctpi_tag;
Should these be uint32_t (etc) for userspace? > + __u32 sctpi_state; ... > + __u16 __reserved1; Is it worth adding some extra pad here in case anything extra needs to be added to this set of data? ... > + __u32 __reserved3; Think I'd definitely add a few words of pad here. Or at least make absolutely sure the interface passes the buffer length and allows for kernels that report different length buffers. > +}; David