diff options
author | Xin Long <lucien.xin@gmail.com> | 2016-05-29 17:42:13 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-05-31 11:59:06 -0700 |
commit | 40eb90e9ccc3f96f937ea1db79d0f9cb61553ed5 (patch) | |
tree | d49acc0fb8974b6ba226b9fa8804104f52c4ef1d | |
parent | 7fafe803749a0c238feb5d38cb4ddee53eca5aa0 (diff) | |
download | talos-obmc-linux-40eb90e9ccc3f96f937ea1db79d0f9cb61553ed5.tar.gz talos-obmc-linux-40eb90e9ccc3f96f937ea1db79d0f9cb61553ed5.zip |
sctp: sctp_diag should dump sctp socket type
Now we cannot distinguish that one sk is a udp or sctp style when
we use ss to dump sctp_info. it's necessary to dump it as well.
For sctp_diag, ss support is not officially available, thus there
are no official users of this yet, so we can add this field in the
middle of sctp_info without breaking user API.
v1->v2:
- move 'sctpi_s_type' field to the end of struct sctp_info, so
that it won't cause incompatibility with applications already
built.
- add __reserved3 in sctp_info to make sure sctp_info is 8-byte
alignment.
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/linux/sctp.h | 2 | ||||
-rw-r--r-- | net/sctp/socket.c | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/sctp.h b/include/linux/sctp.h index dacb5e711994..de1f64318fc4 100644 --- a/include/linux/sctp.h +++ b/include/linux/sctp.h @@ -765,6 +765,8 @@ struct sctp_info { __u8 sctpi_s_disable_fragments; __u8 sctpi_s_v4mapped; __u8 sctpi_s_frag_interleave; + __u32 sctpi_s_type; + __u32 __reserved3; }; struct sctp_infox { diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 777d0324594a..67154b848aa9 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -4220,6 +4220,7 @@ int sctp_get_sctp_info(struct sock *sk, struct sctp_association *asoc, info->sctpi_s_disable_fragments = sp->disable_fragments; info->sctpi_s_v4mapped = sp->v4mapped; info->sctpi_s_frag_interleave = sp->frag_interleave; + info->sctpi_s_type = sp->type; return 0; } |