[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Hangbin,

On 07/25/2014 06:25 AM, Hangbin Liu wrote:
Signed-off-by: Hangbin Liu <liuhangbin@xxxxxxxxx>
---
  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;


--
To unsubscribe from this list: send the line "unsubscribe trinity" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux SCSI]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux