* [PATCH] net: add ipv4/ipv6 sctp support
@ 2014-07-25 4:25 Hangbin Liu
2014-07-25 10:13 ` Daniel Borkmann
0 siblings, 1 reply; 3+ messages in thread
From: Hangbin Liu @ 2014-07-25 4:25 UTC (permalink / raw)
To: Trinity; +Cc: Daniel Borkmann, Hangbin Liu
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
---
net/proto-ipv4.c | 20 ++++++++++++++------
net/proto-ipv6.c | 21 ++++++++++++++++-----
2 files changed, 30 insertions(+), 11 deletions(-)
diff --git a/net/proto-ipv4.c b/net/proto-ipv4.c
index 8babe6d..5588518 100644
--- a/net/proto-ipv4.c
+++ b/net/proto-ipv4.c
@@ -97,22 +97,30 @@ void ipv4_gen_sockaddr(struct sockaddr **addr, socklen_t *addrlen)
void inet_rand_socket(struct socket_triplet *st)
{
- switch (rand() % 3) {
- case 0: st->type = SOCK_STREAM; // TCP
+ switch (rand() % 4) {
+ case 0: st->type = SOCK_STREAM; // TCP/SCTP
+ switch (rand() % 3) {
+ case 0: st->protocol = 0; break;
+ case 1: st->protocol = IPPROTO_TCP; break;
+ case 2: st->protocol = IPPROTO_SCTP; break;
+ default:break;
+ }
+
+ case 1: st->type = SOCK_DGRAM; // UDP
if (rand_bool())
st->protocol = 0;
else
- st->protocol = IPPROTO_TCP;
+ st->protocol = IPPROTO_UDP;
break;
- case 1: st->type = SOCK_DGRAM; // UDP
+ case 2: st->type = SOCK_SEQPACKET; // SCTP
if (rand_bool())
st->protocol = 0;
else
- st->protocol = IPPROTO_UDP;
+ st->protocol = IPPROTO_SCTP;
break;
- case 2: st->type = SOCK_RAW;
+ case 3: st->type = SOCK_RAW;
st->protocol = rand() % PROTO_MAX;
break;
diff --git a/net/proto-ipv6.c b/net/proto-ipv6.c
index 16bceb3..d094939 100644
--- a/net/proto-ipv6.c
+++ b/net/proto-ipv6.c
@@ -29,10 +29,14 @@ void ipv6_gen_sockaddr(struct sockaddr **addr, socklen_t *addrlen)
void inet6_rand_socket(struct socket_triplet *st)
{
- switch (rand() % 3) {
- case 0: st->type = SOCK_STREAM; // TCP
- st->protocol = 0;
- break;
+ switch (rand() % 4) {
+ case 0: st->type = SOCK_STREAM; // TCP/SCTP
+ switch (rand() % 3) {
+ case 0: st->protocol = 0; break;
+ case 1: st->protocol = IPPROTO_TCP; break;
+ case 2: st->protocol = IPPROTO_SCTP; break;
+ default:break;
+ }
case 1: st->type = SOCK_DGRAM; // UDP
if (rand_bool())
@@ -41,7 +45,14 @@ void inet6_rand_socket(struct socket_triplet *st)
st->protocol = IPPROTO_UDP;
break;
- case 2: st->type = SOCK_RAW;
+ case 2: st->type = SOCK_SEQPACKET; // SCTP
+ if (rand_bool())
+ st->protocol = 0;
+ else
+ st->protocol = IPPROTO_SCTP;
+ break;
+
+ case 3: st->type = SOCK_RAW;
st->protocol = rand() % PROTO_MAX;
break;
--
1.9.3
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] net: add ipv4/ipv6 sctp support
2014-07-25 4:25 [PATCH] net: add ipv4/ipv6 sctp support Hangbin Liu
@ 2014-07-25 10:13 ` Daniel Borkmann
2014-07-26 2:51 ` Hangbin Liu
0 siblings, 1 reply; 3+ messages in thread
From: Daniel Borkmann @ 2014-07-25 10:13 UTC (permalink / raw)
To: Hangbin Liu; +Cc: Trinity
Hi Hangbin,
On 07/25/2014 06:25 AM, Hangbin Liu wrote:
> Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
> ---
> net/proto-ipv4.c | 20 ++++++++++++++------
> net/proto-ipv6.c | 21 ++++++++++++++++-----
> 2 files changed, 30 insertions(+), 11 deletions(-)
>
> diff --git a/net/proto-ipv4.c b/net/proto-ipv4.c
> index 8babe6d..5588518 100644
> --- a/net/proto-ipv4.c
> +++ b/net/proto-ipv4.c
> @@ -97,22 +97,30 @@ void ipv4_gen_sockaddr(struct sockaddr **addr, socklen_t *addrlen)
>
> void inet_rand_socket(struct socket_triplet *st)
> {
> - switch (rand() % 3) {
> - case 0: st->type = SOCK_STREAM; // TCP
> + switch (rand() % 4) {
> + case 0: st->type = SOCK_STREAM; // TCP/SCTP
> + switch (rand() % 3) {
> + case 0: st->protocol = 0; break;
> + case 1: st->protocol = IPPROTO_TCP; break;
> + case 2: st->protocol = IPPROTO_SCTP; break;
> + default:break;
> + }
I think it would be good for readability reasons to use
the kernel coding style convention, but I'm not sure what
Dave's preference is as the style is also present elsewhere.
Other than that, the patch looks good to me, thanks a lot
Hangbin!
Daniel
> + case 1: st->type = SOCK_DGRAM; // UDP
> if (rand_bool())
> st->protocol = 0;
> else
> - st->protocol = IPPROTO_TCP;
> + st->protocol = IPPROTO_UDP;
> break;
>
> - case 1: st->type = SOCK_DGRAM; // UDP
> + case 2: st->type = SOCK_SEQPACKET; // SCTP
> if (rand_bool())
> st->protocol = 0;
> else
> - st->protocol = IPPROTO_UDP;
> + st->protocol = IPPROTO_SCTP;
> break;
>
> - case 2: st->type = SOCK_RAW;
> + case 3: st->type = SOCK_RAW;
> st->protocol = rand() % PROTO_MAX;
> break;
>
> diff --git a/net/proto-ipv6.c b/net/proto-ipv6.c
> index 16bceb3..d094939 100644
> --- a/net/proto-ipv6.c
> +++ b/net/proto-ipv6.c
> @@ -29,10 +29,14 @@ void ipv6_gen_sockaddr(struct sockaddr **addr, socklen_t *addrlen)
>
> void inet6_rand_socket(struct socket_triplet *st)
> {
> - switch (rand() % 3) {
> - case 0: st->type = SOCK_STREAM; // TCP
> - st->protocol = 0;
> - break;
> + switch (rand() % 4) {
> + case 0: st->type = SOCK_STREAM; // TCP/SCTP
> + switch (rand() % 3) {
> + case 0: st->protocol = 0; break;
> + case 1: st->protocol = IPPROTO_TCP; break;
> + case 2: st->protocol = IPPROTO_SCTP; break;
> + default:break;
> + }
>
> case 1: st->type = SOCK_DGRAM; // UDP
> if (rand_bool())
> @@ -41,7 +45,14 @@ void inet6_rand_socket(struct socket_triplet *st)
> st->protocol = IPPROTO_UDP;
> break;
>
> - case 2: st->type = SOCK_RAW;
> + case 2: st->type = SOCK_SEQPACKET; // SCTP
> + if (rand_bool())
> + st->protocol = 0;
> + else
> + st->protocol = IPPROTO_SCTP;
> + break;
> +
> + case 3: st->type = SOCK_RAW;
> st->protocol = rand() % PROTO_MAX;
> break;
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] net: add ipv4/ipv6 sctp support
2014-07-25 10:13 ` Daniel Borkmann
@ 2014-07-26 2:51 ` Hangbin Liu
0 siblings, 0 replies; 3+ messages in thread
From: Hangbin Liu @ 2014-07-26 2:51 UTC (permalink / raw)
To: Daniel Borkmann; +Cc: Trinity
2014-07-25 18:13 GMT+08:00 Daniel Borkmann <dborkman@redhat.com>:
> Hi Hangbin,
>
>
> On 07/25/2014 06:25 AM, Hangbin Liu wrote:
>>
>> Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
>> ---
>> net/proto-ipv4.c | 20 ++++++++++++++------
>> net/proto-ipv6.c | 21 ++++++++++++++++-----
>> 2 files changed, 30 insertions(+), 11 deletions(-)
>>
>> diff --git a/net/proto-ipv4.c b/net/proto-ipv4.c
>> index 8babe6d..5588518 100644
>> --- a/net/proto-ipv4.c
>> +++ b/net/proto-ipv4.c
>> @@ -97,22 +97,30 @@ void ipv4_gen_sockaddr(struct sockaddr **addr,
>> socklen_t *addrlen)
>>
>> void inet_rand_socket(struct socket_triplet *st)
>> {
>> - switch (rand() % 3) {
>> - case 0: st->type = SOCK_STREAM; // TCP
>> + switch (rand() % 4) {
>> + case 0: st->type = SOCK_STREAM; // TCP/SCTP
>> + switch (rand() % 3) {
>> + case 0: st->protocol = 0; break;
>> + case 1: st->protocol = IPPROTO_TCP; break;
>> + case 2: st->protocol = IPPROTO_SCTP; break;
>> + default:break;
>> + }
>
>
> I think it would be good for readability reasons to use
> the kernel coding style convention, but I'm not sure what
> Dave's preference is as the style is also present elsewhere.
I'm OK to change the code style, wait for Dave's response.
Thanks
Hangbin Liu
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-07-26 2:51 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-25 4:25 [PATCH] net: add ipv4/ipv6 sctp support Hangbin Liu
2014-07-25 10:13 ` Daniel Borkmann
2014-07-26 2:51 ` Hangbin Liu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox