From 3a4aebe94706296c8abb7097b90c74944c50403a Mon Sep 17 00:00:00 2001 From: Nikhil Malik Date: Thu, 13 Apr 2023 16:40:02 +0900 Subject: [PATCH 01/11] ulclsctplb test validation updated using socat --- cicd/ulclsctplb/client | Bin 17320 -> 0 bytes cicd/ulclsctplb/client.c | 96 ------------------------ cicd/ulclsctplb/server | Bin 17400 -> 0 bytes cicd/ulclsctplb/server.c | 137 ---------------------------------- cicd/ulclsctplb/validation.sh | 15 ++-- 5 files changed, 9 insertions(+), 239 deletions(-) delete mode 100755 cicd/ulclsctplb/client delete mode 100644 cicd/ulclsctplb/client.c delete mode 100755 cicd/ulclsctplb/server delete mode 100644 cicd/ulclsctplb/server.c diff --git a/cicd/ulclsctplb/client b/cicd/ulclsctplb/client deleted file mode 100755 index 424dcc34da1f87c78d506ce0a9eeef383488ea81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17320 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 AKmY&$ diff --git a/cicd/ulclsctplb/client.c b/cicd/ulclsctplb/client.c deleted file mode 100644 index 0c4c30cd..00000000 --- a/cicd/ulclsctplb/client.c +++ /dev/null @@ -1,96 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#define MAX_BUFFER 1024 -#define MY_PORT_NUM 8080 /* This can be changed to suit the need and should be same in server and client */ - -int -main (int argc, char* argv[]) -{ - int connSock, in, i, ret, flags; - struct sockaddr_in servaddr; - struct sctp_status status; - struct sctp_sndrcvinfo sndrcvinfo; - char buffer[MAX_BUFFER + 1]; - int datalen = 0; - fd_set read_fd_set; - - /*Get the input from user*/ - //printf("Enter data to send: "); - //fgets(buffer, MAX_BUFFER, stdin); - /* Clear the newline or carriage return from the end*/ - //buffer[strcspn(buffer, "\r\n")] = 0; - /* Sample input */ - strncpy (buffer, "Hello Server", 12); - buffer[12] = '\0'; - datalen = strlen(buffer); - - connSock = socket (AF_INET, SOCK_STREAM, IPPROTO_SCTP); - - if (connSock == -1) - { - printf("Socket creation failed\n"); - perror("socket()"); - exit(1); - } - - bzero ((void *) &servaddr, sizeof (servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_port = htons (atoi(argv[2])); - servaddr.sin_addr.s_addr = inet_addr (argv[1]); - - ret = connect (connSock, (struct sockaddr *) &servaddr, sizeof (servaddr)); - - if (ret == -1) - { - printf("Connection failed\n"); - perror("connect()"); - close(connSock); - exit(1); - } - FD_ZERO(&read_fd_set); - ret = sctp_sendmsg (connSock, (void *) buffer, (size_t) datalen, - NULL, 0, 0, 0, 0, 0, 0); - if(ret == -1 ) - { - printf("Error in sctp_sendmsg\n"); - perror("sctp_sendmsg()"); - } - else { - // printf("Successfully sent %d bytes data to server\n", ret); - FD_SET(connSock, &read_fd_set); - int ret_val = select(FD_SETSIZE, &read_fd_set, NULL, NULL, NULL); - if (ret_val >= 0) { - if (FD_ISSET(connSock, &read_fd_set)) { - - in = sctp_recvmsg (connSock, buffer, sizeof (buffer), - (struct sockaddr *) NULL, 0, &sndrcvinfo, &flags); - - if( in == -1) - { - printf("Error in sctp_recvmsg\n"); - perror("sctp_recvmsg()"); - close(connSock); - return -1; - } - else { - //Add '\0' in case of text data - buffer[in] = '\0'; - - // printf (" Length of Data received: %d\n", in); - printf ("%s", (char *) buffer); - } - } - } - } - - close (connSock); - - return 0; -} diff --git a/cicd/ulclsctplb/server b/cicd/ulclsctplb/server deleted file mode 100755 index 8f33a49ff830bb0acd99f02a9dc0dd2632de6702..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17400 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 -#include -#include -#include -#include -#include -#include -#include -#include -#define MAX_BUFFER 1024 -#define MY_PORT_NUM 8080 /* This can be changed to suit the need and should be same in server and client */ - -int -main (int argc, char* argv[]) -{ - int listenSock, connSock, ret, in, flags, i; - struct sockaddr_in servaddr; - struct sctp_initmsg initmsg; - struct sctp_event_subscribe events; - struct sctp_sndrcvinfo sndrcvinfo; - char buffer[MAX_BUFFER + 1]; - int count = 0; - fd_set read_fd_set; - - listenSock = socket (AF_INET, SOCK_STREAM, IPPROTO_SCTP); - if(listenSock == -1) - { - printf("Failed to create socket\n"); - perror("socket()"); - exit(1); - } - - bzero ((void *) &servaddr, sizeof (servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_addr.s_addr = htonl (INADDR_ANY); - servaddr.sin_port = htons (MY_PORT_NUM); - - ret = bind (listenSock, (struct sockaddr *) &servaddr, sizeof (servaddr)); - - if(ret == -1 ) - { - printf("Bind failed \n"); - perror("bind()"); - close(listenSock); - exit(1); - } - - /* Specify that a maximum of 5 streams will be available per socket */ - memset (&initmsg, 0, sizeof (initmsg)); - initmsg.sinit_num_ostreams = 5; - initmsg.sinit_max_instreams = 5; - initmsg.sinit_max_attempts = 4; - ret = setsockopt (listenSock, IPPROTO_SCTP, SCTP_INITMSG, - &initmsg, sizeof (initmsg)); - - if(ret == -1 ) - { - printf("setsockopt() failed \n"); - perror("setsockopt()"); - close(listenSock); - exit(1); - } - - ret = listen (listenSock, 5); - if(ret == -1 ) - { - printf("listen() failed \n"); - perror("listen()"); - close(listenSock); - exit(1); - } - - while (1) - { - char buffer[MAX_BUFFER + 1]; - int len; - FD_ZERO(&read_fd_set); - - //Clear the buffer - bzero (buffer, MAX_BUFFER + 1); - - //printf ("Awaiting a new connection\n"); - - connSock = accept (listenSock, (struct sockaddr *) NULL, (int *) NULL); - if (connSock == -1) - { - printf("accept() failed\n"); - perror("accept()"); - close(connSock); - continue; - } - else - //printf ("Server: New client connected to %s\n", argv[1]); - count++; - FD_SET(connSock, &read_fd_set); - int ret_val = select(FD_SETSIZE, &read_fd_set, NULL, NULL, NULL); - if (ret_val >= 0) { - if (FD_ISSET(connSock, &read_fd_set)) { - in = sctp_recvmsg (connSock, buffer, sizeof (buffer), - (struct sockaddr *) NULL, 0, &sndrcvinfo, &flags); - - if( in == -1) - { - printf("Server: Error in sctp_recvmsg\n"); - perror("sctp_recvmsg()"); - close(connSock); - continue; - } - else - { - //Add '\0' in case of text data - buffer[in] = '\0'; - //printf (" Length of Data received: %d\n", in); - //printf (" Data : %s\n", (char *) buffer); - strncpy (buffer, argv[1], strlen(argv[1])); - buffer[strlen(argv[1])] = '\0'; - int datalen = strlen(buffer); - - ret = sctp_sendmsg (connSock, (void *) buffer, (size_t) datalen, - NULL, 0, 0, 0, 0, 0, 0); - if(ret == -1 ) - { - printf("Error in sctp_sendmsg\n"); - perror("sctp_sendmsg()"); - } - //else - // printf("Successfully sent %d bytes data to client\n", ret); - } - close (connSock); - if (count == 5) - exit(0); - } - } - } - - return 0; -} diff --git a/cicd/ulclsctplb/validation.sh b/cicd/ulclsctplb/validation.sh index e83c26ae..45f07050 100755 --- a/cicd/ulclsctplb/validation.sh +++ b/cicd/ulclsctplb/validation.sh @@ -1,20 +1,21 @@ #!/bin/bash source ../common.sh echo SCENARIO-ulclsctplb -$hexec l3e1 ./server server1 & -$hexec l3e2 ./server server2 & -$hexec l3e3 ./server server3 & +$hexec l3e1 socat -v -T0.5 sctp-l:8080,bind=25.25.25.1,reuseaddr,fork system:"echo 'server1'; cat" >/dev/null 2>&1 & +$hexec l3e2 socat -v -T0.5 sctp-l:8080,bind=26.26.26.1,reuseaddr,fork system:"echo 'server2'; cat" >/dev/null 2>&1 & +$hexec l3e3 socat -v -T0.5 sctp-l:8080,bind=27.27.27.1,reuseaddr,fork system:"echo 'server3'; cat" >/dev/null 2>&1 & sleep 5 code=0 servArr=( "server1" "server2" "server3" ) ep=( "25.25.25.1" "26.26.26.1" "27.27.27.1" ) +ueIp=( "" "32.32.32.1" "31.31.31.1" ) j=0 waitCount=0 while [ $j -le 2 ] do #res=$($hexec ue1 curl ${ep[j]}:8080) - res=`$hexec ue1 ./client ${ep[j]} 8080` + res=`$hexec ue1 socat -T10 - SCTP:${ep[j]}:8080,bind=${ueIp[1]}` #echo $res if [[ $res == "${servArr[j]}" ]] then @@ -27,6 +28,7 @@ do then echo "All Servers are not UP" echo SCENARIO-ulclsctplb [FAILED] + sudo pkill -9 socat 2>&1 > /dev/null exit 1 fi @@ -40,7 +42,8 @@ for i in {1..2} do for j in {0..2} do - res=$($hexec ue$k ./client 88.88.88.88 2020) + #res=$($hexec ue$k ../common/sctp_client ${ueIp[k]} 88.88.88.88 2020) + res=$($hexec ue$k socat -T10 - SCTP:88.88.88.88:2020,bind=${ueIp[k]}) echo -e $res if [[ $res != "${servArr[j]}" ]] then @@ -66,5 +69,5 @@ then else echo SCENARIO-ulclsctplb [FAILED] fi +sudo pkill -9 socat 2>&1 > /dev/null exit $code - From 1e5b0c864685764d63046a5635aa29abec802f64 Mon Sep 17 00:00:00 2001 From: Nikhil Malik Date: Thu, 13 Apr 2023 17:03:58 +0900 Subject: [PATCH 02/11] testing sctp socat --- cicd/ulclsctplb/validation.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cicd/ulclsctplb/validation.sh b/cicd/ulclsctplb/validation.sh index 45f07050..9d11040d 100755 --- a/cicd/ulclsctplb/validation.sh +++ b/cicd/ulclsctplb/validation.sh @@ -16,7 +16,7 @@ while [ $j -le 2 ] do #res=$($hexec ue1 curl ${ep[j]}:8080) res=`$hexec ue1 socat -T10 - SCTP:${ep[j]}:8080,bind=${ueIp[1]}` - #echo $res + echo $res if [[ $res == "${servArr[j]}" ]] then echo "$res UP" @@ -28,8 +28,8 @@ do then echo "All Servers are not UP" echo SCENARIO-ulclsctplb [FAILED] - sudo pkill -9 socat 2>&1 > /dev/null - exit 1 + #sudo pkill -9 socat 2>&1 > /dev/null + #exit 1 fi fi From 88c3ecf75d79504b1ff938c7cb0778f12c3fbd42 Mon Sep 17 00:00:00 2001 From: Nikhil Malik Date: Thu, 13 Apr 2023 17:18:15 +0900 Subject: [PATCH 03/11] testing sctp socat --- cicd/ulclsctplb/validation.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cicd/ulclsctplb/validation.sh b/cicd/ulclsctplb/validation.sh index 9d11040d..372d7f63 100755 --- a/cicd/ulclsctplb/validation.sh +++ b/cicd/ulclsctplb/validation.sh @@ -1,9 +1,9 @@ #!/bin/bash source ../common.sh echo SCENARIO-ulclsctplb -$hexec l3e1 socat -v -T0.5 sctp-l:8080,bind=25.25.25.1,reuseaddr,fork system:"echo 'server1'; cat" >/dev/null 2>&1 & -$hexec l3e2 socat -v -T0.5 sctp-l:8080,bind=26.26.26.1,reuseaddr,fork system:"echo 'server2'; cat" >/dev/null 2>&1 & -$hexec l3e3 socat -v -T0.5 sctp-l:8080,bind=27.27.27.1,reuseaddr,fork system:"echo 'server3'; cat" >/dev/null 2>&1 & +$hexec l3e1 nohup socat -v -T0.5 sctp-l:8080,bind=25.25.25.1,reuseaddr,fork system:"echo 'server1'; cat" >/dev/null 2>&1 & +$hexec l3e2 nohup socat -v -T0.5 sctp-l:8080,bind=26.26.26.1,reuseaddr,fork system:"echo 'server2'; cat" >/dev/null 2>&1 & +$hexec l3e3 nohup socat -v -T0.5 sctp-l:8080,bind=27.27.27.1,reuseaddr,fork system:"echo 'server3'; cat" >/dev/null 2>&1 & sleep 5 code=0 @@ -29,7 +29,7 @@ do echo "All Servers are not UP" echo SCENARIO-ulclsctplb [FAILED] #sudo pkill -9 socat 2>&1 > /dev/null - #exit 1 + break fi fi From 9d4657f5b00c32beba11e62c54f4ec8ede2e6396 Mon Sep 17 00:00:00 2001 From: Nikhil Malik Date: Thu, 13 Apr 2023 17:38:03 +0900 Subject: [PATCH 04/11] testing sctp socat --- cicd/ulclsctplb/validation.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cicd/ulclsctplb/validation.sh b/cicd/ulclsctplb/validation.sh index 372d7f63..46859146 100755 --- a/cicd/ulclsctplb/validation.sh +++ b/cicd/ulclsctplb/validation.sh @@ -15,7 +15,8 @@ waitCount=0 while [ $j -le 2 ] do #res=$($hexec ue1 curl ${ep[j]}:8080) - res=`$hexec ue1 socat -T10 - SCTP:${ep[j]}:8080,bind=${ueIp[1]}` + #res=`$hexec ue1 socat -T10 - SCTP:${ep[j]}:8080,bind=${ueIp[1]}` + res=`$hexec ue1 socat -T10 - SCTP:${ep[j]}:8080` echo $res if [[ $res == "${servArr[j]}" ]] then From e191df2b28e44fcd4de18a082d66b4a2f17363fb Mon Sep 17 00:00:00 2001 From: Nikhil Malik Date: Fri, 14 Apr 2023 10:37:59 +0900 Subject: [PATCH 05/11] sctp client and server files updated --- cicd/common/sctp_client | Bin 17320 -> 17336 bytes cicd/common/sctp_client.c | 136 ++++++++++------------ cicd/common/sctp_server | Bin 17400 -> 17552 bytes cicd/common/sctp_server.c | 212 +++++++++++++--------------------- cicd/ulclsctplb/validation.sh | 18 +-- 5 files changed, 148 insertions(+), 218 deletions(-) diff --git a/cicd/common/sctp_client b/cicd/common/sctp_client index 424dcc34da1f87c78d506ce0a9eeef383488ea81..b59f57f9bc9325df4749de634624b564ccc7c516 100755 GIT binary patch delta 2428 zcmZ8ieQZ-z6u-A0Yu`Rt%Ld)Rus0m6i(#cO7(+K&2jNv`7y(2Rah>~cgSib_qlv

<``sf$I-N*#iisw;2ULmkv=7S&~9X0q)is-{ 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 ZLPBEP5VjUC(9r38Wl1jmkvEs5{{wSCc*p<% diff --git a/cicd/common/sctp_client.c b/cicd/common/sctp_client.c index 0c4c30cd..b730ba1d 100644 --- a/cicd/common/sctp_client.c +++ b/cicd/common/sctp_client.c @@ -1,96 +1,78 @@ -#include -#include -#include -#include #include #include #include #include #include -#define MAX_BUFFER 1024 -#define MY_PORT_NUM 8080 /* This can be changed to suit the need and should be same in server and client */ +#include +#include +#include +#include +#include + +#define RECVBUFSIZE 4096 +#define PPID 1234 -int -main (int argc, char* argv[]) +int main(int argc, char* argv[]) { - int connSock, in, i, ret, flags; - struct sockaddr_in servaddr; - struct sctp_status status; - struct sctp_sndrcvinfo sndrcvinfo; - char buffer[MAX_BUFFER + 1]; - int datalen = 0; - fd_set read_fd_set; - /*Get the input from user*/ - //printf("Enter data to send: "); - //fgets(buffer, MAX_BUFFER, stdin); - /* Clear the newline or carriage return from the end*/ - //buffer[strcspn(buffer, "\r\n")] = 0; - /* Sample input */ - strncpy (buffer, "Hello Server", 12); - buffer[12] = '\0'; - datalen = strlen(buffer); + struct sockaddr_in servaddr = {0}; + struct sockaddr_in laddr = {0}; + int sockfd, in, flags; + char *saddr; + int sport; + struct sctp_status status = {0}; + struct sctp_sndrcvinfo sndrcvinfo = {0}; + struct sctp_event_subscribe events = {0}; + struct sctp_initmsg initmsg = {0}; + char msg[1024] = {0}; + char buff[1024] = {0}; + socklen_t opt_len; + socklen_t slen = (socklen_t) sizeof(struct sockaddr_in); + + + sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP); - connSock = socket (AF_INET, SOCK_STREAM, IPPROTO_SCTP); + laddr.sin_family = AF_INET; + laddr.sin_port = 0; + laddr.sin_addr.s_addr = inet_addr(argv[1]); - if (connSock == -1) - { - printf("Socket creation failed\n"); - perror("socket()"); - exit(1); - } + //bind to local address + bind(sockfd, (struct sockaddr *)&laddr, sizeof(struct sockaddr_in)); - bzero ((void *) &servaddr, sizeof (servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_port = htons (atoi(argv[2])); - servaddr.sin_addr.s_addr = inet_addr (argv[1]); + //set the association options + initmsg.sinit_num_ostreams = 1; + setsockopt( sockfd, IPPROTO_SCTP, SCTP_INITMSG, &initmsg,sizeof(initmsg)); - ret = connect (connSock, (struct sockaddr *) &servaddr, sizeof (servaddr)); + saddr = argv[2]; + sport = atoi(argv[3]); + bzero( (void *)&servaddr, sizeof(servaddr) ); + servaddr.sin_family = AF_INET; + servaddr.sin_port = htons(sport); + servaddr.sin_addr.s_addr = inet_addr( saddr ); - if (ret == -1) - { - printf("Connection failed\n"); - perror("connect()"); - close(connSock); - exit(1); - } - FD_ZERO(&read_fd_set); - ret = sctp_sendmsg (connSock, (void *) buffer, (size_t) datalen, - NULL, 0, 0, 0, 0, 0, 0); - if(ret == -1 ) - { - printf("Error in sctp_sendmsg\n"); - perror("sctp_sendmsg()"); - } - else { - // printf("Successfully sent %d bytes data to server\n", ret); - FD_SET(connSock, &read_fd_set); - int ret_val = select(FD_SETSIZE, &read_fd_set, NULL, NULL, NULL); - if (ret_val >= 0) { - if (FD_ISSET(connSock, &read_fd_set)) { - in = sctp_recvmsg (connSock, buffer, sizeof (buffer), - (struct sockaddr *) NULL, 0, &sndrcvinfo, &flags); + connect( sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)); - if( in == -1) - { - printf("Error in sctp_recvmsg\n"); - perror("sctp_recvmsg()"); - close(connSock); - return -1; - } - else { - //Add '\0' in case of text data - buffer[in] = '\0'; + opt_len = (socklen_t) sizeof(struct sctp_status); + getsockopt(sockfd, IPPROTO_SCTP, SCTP_STATUS, &status, &opt_len); - // printf (" Length of Data received: %d\n", in); - printf ("%s", (char *) buffer); - } - } - } - } + while(1) + { + strncpy (msg, "hello", strlen("hello")); + //printf("Sending msg to server: %s", msg); + sctp_sendmsg(sockfd, (const void *)msg, strlen(msg), NULL, 0,htonl(PPID), 0, 0 , 0, 0); - close (connSock); + in = sctp_recvmsg(sockfd, (void*)buff, RECVBUFSIZE, + (struct sockaddr *)&servaddr, + &slen, &sndrcvinfo, &flags); + if (in > 0 && in < RECVBUFSIZE - 1) + { + buff[in] = 0; + printf("%s",buff); + break; + } + } - return 0; + close(sockfd); + return 0; } diff --git a/cicd/common/sctp_server b/cicd/common/sctp_server index 8f33a49ff830bb0acd99f02a9dc0dd2632de6702..cfd6d4096b03d3e7d69fe0a2826410f5a5a1aa12 100755 GIT binary patch delta 4191 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 +#include +#include +#include +#include #include #include #include #include -#include -#include -#include -#include -#include -#define MAX_BUFFER 1024 -#define MY_PORT_NUM 8080 /* This can be changed to suit the need and should be same in server and client */ - -int -main (int argc, char* argv[]) -{ - int listenSock, connSock, ret, in, flags, i; - struct sockaddr_in servaddr; - struct sctp_initmsg initmsg; - struct sctp_event_subscribe events; - struct sctp_sndrcvinfo sndrcvinfo; - char buffer[MAX_BUFFER + 1]; - int count = 0; - fd_set read_fd_set; - - listenSock = socket (AF_INET, SOCK_STREAM, IPPROTO_SCTP); - if(listenSock == -1) - { - printf("Failed to create socket\n"); - perror("socket()"); - exit(1); - } - - bzero ((void *) &servaddr, sizeof (servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_addr.s_addr = htonl (INADDR_ANY); - servaddr.sin_port = htons (MY_PORT_NUM); - - ret = bind (listenSock, (struct sockaddr *) &servaddr, sizeof (servaddr)); - - if(ret == -1 ) - { - printf("Bind failed \n"); - perror("bind()"); - close(listenSock); - exit(1); - } - - /* Specify that a maximum of 5 streams will be available per socket */ - memset (&initmsg, 0, sizeof (initmsg)); - initmsg.sinit_num_ostreams = 5; - initmsg.sinit_max_instreams = 5; - initmsg.sinit_max_attempts = 4; - ret = setsockopt (listenSock, IPPROTO_SCTP, SCTP_INITMSG, - &initmsg, sizeof (initmsg)); - - if(ret == -1 ) - { - printf("setsockopt() failed \n"); - perror("setsockopt()"); - close(listenSock); - exit(1); - } - - ret = listen (listenSock, 5); - if(ret == -1 ) - { - printf("listen() failed \n"); - perror("listen()"); - close(listenSock); - exit(1); - } - - while (1) - { - char buffer[MAX_BUFFER + 1]; - int len; - FD_ZERO(&read_fd_set); - - //Clear the buffer - bzero (buffer, MAX_BUFFER + 1); - - //printf ("Awaiting a new connection\n"); - - connSock = accept (listenSock, (struct sockaddr *) NULL, (int *) NULL); - if (connSock == -1) - { - printf("accept() failed\n"); - perror("accept()"); - close(connSock); - continue; - } - else - //printf ("Server: New client connected to %s\n", argv[1]); - count++; - FD_SET(connSock, &read_fd_set); - int ret_val = select(FD_SETSIZE, &read_fd_set, NULL, NULL, NULL); - if (ret_val >= 0) { - if (FD_ISSET(connSock, &read_fd_set)) { - in = sctp_recvmsg (connSock, buffer, sizeof (buffer), - (struct sockaddr *) NULL, 0, &sndrcvinfo, &flags); - - if( in == -1) - { - printf("Server: Error in sctp_recvmsg\n"); - perror("sctp_recvmsg()"); - close(connSock); - continue; - } - else - { - //Add '\0' in case of text data - buffer[in] = '\0'; - //printf (" Length of Data received: %d\n", in); - //printf (" Data : %s\n", (char *) buffer); - strncpy (buffer, argv[1], strlen(argv[1])); - buffer[strlen(argv[1])] = '\0'; - int datalen = strlen(buffer); - - ret = sctp_sendmsg (connSock, (void *) buffer, (size_t) datalen, - NULL, 0, 0, 0, 0, 0, 0); - if(ret == -1 ) - { - printf("Error in sctp_sendmsg\n"); - perror("sctp_sendmsg()"); - } - //else - // printf("Successfully sent %d bytes data to client\n", ret); - } - close (connSock); - if (count == 5) - exit(0); - } - } - } - - return 0; +#include + +#define RECVBUFSIZE 4096 +#define PPID 1234 + +int main(int argc, char* argv[]) { + + struct sockaddr_in laddr = {0}; + struct sockaddr_in caddr = {0}; + int sockfd, n, flags; + struct sctp_sndrcvinfo sinfo = {0}; + struct sctp_event_subscribe event = {0}; + char recvbuff[RECVBUFSIZE + 1] = {0}; + socklen_t clen; + + char *saddr, *msg; + int lport, mlen; + + saddr = argv[1]; + lport = atoi(argv[2]); + msg = argv[3]; + + mlen = strlen(msg); + + sockfd = socket(AF_INET, SOCK_SEQPACKET, IPPROTO_SCTP); + + setsockopt(sockfd, IPPROTO_SCTP, SCTP_EVENTS, &event,sizeof(struct sctp_event_subscribe)); + + laddr.sin_family = AF_INET; + laddr.sin_port = htons(lport); + laddr.sin_addr.s_addr = inet_addr(saddr); + + bind(sockfd, (struct sockaddr *)&laddr, sizeof(struct sockaddr_in)); + + listen(sockfd, 1); + + while(1) + { + flags = 0; + memset((void *)&caddr, 0, sizeof(struct sockaddr_in)); + clen = (socklen_t)sizeof(struct sockaddr_in); + memset((void *)&sinfo, 0, sizeof(struct sctp_sndrcvinfo)); + + n = sctp_recvmsg(sockfd, (void*)recvbuff, RECVBUFSIZE,(struct sockaddr *)&caddr, &clen, &sinfo, &flags); + if (-1 == n) + { + printf("Error with sctp_recvmsg: %d\n", errno); + perror("Description: "); + printf("Waiting..\n"); + sleep(1); + continue; + } + + if (flags & MSG_NOTIFICATION) + { + printf("Notification received from %s:%u\n", inet_ntoa(caddr.sin_addr), ntohs(caddr.sin_port)); + } + else + { + printf("Received from %s:%u on stream %d, PPID %d.: %s\n", + inet_ntoa(caddr.sin_addr), + ntohs(caddr.sin_port), + sinfo.sinfo_stream, + ntohl(sinfo.sinfo_ppid), + recvbuff); + } + + printf("Sending msg to client: %s\n", msg); + sctp_sendmsg(sockfd, (const void *)msg, strlen(msg), (struct sockaddr *)&caddr, clen, htonl(PPID), 0, 0 , 0, 0); + + }//while + + close(sockfd); + return (0); } + diff --git a/cicd/ulclsctplb/validation.sh b/cicd/ulclsctplb/validation.sh index 46859146..11132c23 100755 --- a/cicd/ulclsctplb/validation.sh +++ b/cicd/ulclsctplb/validation.sh @@ -1,9 +1,9 @@ #!/bin/bash source ../common.sh echo SCENARIO-ulclsctplb -$hexec l3e1 nohup socat -v -T0.5 sctp-l:8080,bind=25.25.25.1,reuseaddr,fork system:"echo 'server1'; cat" >/dev/null 2>&1 & -$hexec l3e2 nohup socat -v -T0.5 sctp-l:8080,bind=26.26.26.1,reuseaddr,fork system:"echo 'server2'; cat" >/dev/null 2>&1 & -$hexec l3e3 nohup socat -v -T0.5 sctp-l:8080,bind=27.27.27.1,reuseaddr,fork system:"echo 'server3'; cat" >/dev/null 2>&1 & +$hexec l3e1 nohup ../common/sctp_server 25.25.25.1 8080 server1 >/dev/null 2>&1 & +$hexec l3e2 nohup ../common/sctp_server 26.26.26.1 8080 server2 >/dev/null 2>&1 & +$hexec l3e3 nohup ../common/sctp_server 27.27.27.1 8080 server3 >/dev/null 2>&1 & sleep 5 code=0 @@ -16,7 +16,7 @@ while [ $j -le 2 ] do #res=$($hexec ue1 curl ${ep[j]}:8080) #res=`$hexec ue1 socat -T10 - SCTP:${ep[j]}:8080,bind=${ueIp[1]}` - res=`$hexec ue1 socat -T10 - SCTP:${ep[j]}:8080` + res=`$hexec ue1 ../common/sctp_client ${ueIp[1]} ${ep[j]} 8080` echo $res if [[ $res == "${servArr[j]}" ]] then @@ -29,8 +29,8 @@ do then echo "All Servers are not UP" echo SCENARIO-ulclsctplb [FAILED] - #sudo pkill -9 socat 2>&1 > /dev/null - break + sudo pkill -9 sctp_server >/dev/null 2>&1 + exit 1 fi fi @@ -43,8 +43,8 @@ for i in {1..2} do for j in {0..2} do - #res=$($hexec ue$k ../common/sctp_client ${ueIp[k]} 88.88.88.88 2020) - res=$($hexec ue$k socat -T10 - SCTP:88.88.88.88:2020,bind=${ueIp[k]}) + res=$($hexec ue$k ../common/sctp_client ${ueIp[k]} 88.88.88.88 2020) + #res=$($hexec ue$k socat -T10 - SCTP:88.88.88.88:2020,bind=${ueIp[k]}) echo -e $res if [[ $res != "${servArr[j]}" ]] then @@ -70,5 +70,5 @@ then else echo SCENARIO-ulclsctplb [FAILED] fi -sudo pkill -9 socat 2>&1 > /dev/null +sudo pkill -9 sctp_server >/dev/null 2>&1 exit $code From 51aa067bdba0ced470d2eec47e7c5c89cb192836 Mon Sep 17 00:00:00 2001 From: Nikhil Malik Date: Fri, 14 Apr 2023 11:19:57 +0900 Subject: [PATCH 06/11] sctp LB test scripts updated to new server and clients --- cicd/cluster2/validation.sh | 19 ++++++++++--------- cicd/sctpfullnat/validation.sh | 16 +++++++++------- cicd/sctpfullnatl2/config.sh | 2 +- cicd/sctpfullnatl2/validation.sh | 15 ++++++++------- cicd/sctplb/validation.sh | 19 +++++++++++-------- cicd/sctplbdsr/validation.sh | 13 +++++++------ cicd/sctptunlb/validation.sh | 18 +++++++++++------- 7 files changed, 57 insertions(+), 45 deletions(-) diff --git a/cicd/cluster2/validation.sh b/cicd/cluster2/validation.sh index 0d1fe5b5..76889474 100755 --- a/cicd/cluster2/validation.sh +++ b/cicd/cluster2/validation.sh @@ -49,7 +49,7 @@ function tcp_validate() { then echo "All TCP Servers are not UP" >&2 echo CLUSTER-2 [FAILED] >&2 - sudo pkill node + sudo pkill -9 node 2>&1 > /dev/null exit 1 fi fi @@ -91,9 +91,9 @@ function tcp_validate() { } function sctp_validate() { - $hexec ep1 ../common/sctp_server server1 & - $hexec ep2 ../common/sctp_server server2 & - $hexec ep3 ../common/sctp_server server3 & + $hexec ep1 ../common/sctp_server ${ep[0]} 8080 server1 >/dev/null 2>&1 & + $hexec ep2 ../common/sctp_server ${ep[1]} 8080 server2 >/dev/null 2>&1 & + $hexec ep3 ../common/sctp_server ${ep[2]} 8080 server3 >/dev/null 2>&1 & sleep 20 @@ -107,7 +107,7 @@ function sctp_validate() { else $hexec r2 ip route list match 20.20.20.1 >&2 echo "BGP Service Route [NOK]" >&2 - sudo pkill sctp_server + sudo pkill -9 sctp_server >/dev/null 2&1 return 1 fi @@ -117,7 +117,7 @@ function sctp_validate() { waitCount=0 while [ $j -le 2 ] do - res=$($hexec user timeout 10 ../common/sctp_client ${ep[j]} 8080) + res=$($hexec user timeout 10 ../common/sctp_client 1.1.1.1 ${ep[j]} 8080) if [[ $res == "${servArr[j]}" ]] then echo "$res UP" >&2 @@ -129,6 +129,7 @@ function sctp_validate() { then echo "All SCTP Servers are not UP" >&2 echo CLUSTER-2 [FAILED] >&2 + sudo pkill -9 sctp_server >/dev/null 2&1 exit 1 fi @@ -140,7 +141,7 @@ function sctp_validate() { do for j in {0..2} do - res=$($hexec user timeout 10 ../common/sctp_client 20.20.20.1 2020) + res=$($hexec user timeout 10 ../common/sctp_client 1.1.1.1 20.20.20.1 2020) echo -e $res >&2 ids=`echo "${res//[!0-9]/}"` if [[ $res == *"server"* ]]; then @@ -165,7 +166,7 @@ function sctp_validate() { sleep 1 done done - sudo pkill sctp_server + sudo pkill -9 sctp_server >/dev/null 2>&1 echo $code } @@ -319,5 +320,5 @@ then else echo CLUSTER-2 SCTP [FAILED] fi - +sudo pkill -9 sctp_server >/dev/null 2>&1 exit $code diff --git a/cicd/sctpfullnat/validation.sh b/cicd/sctpfullnat/validation.sh index 0f52a1c5..26cc0c7a 100755 --- a/cicd/sctpfullnat/validation.sh +++ b/cicd/sctpfullnat/validation.sh @@ -1,18 +1,19 @@ #!/bin/bash source ../common.sh echo SCENARIO-SCTP-FULLNAT -$hexec ep1 ./server server1 & -$hexec ep2 ./server server2 & +servArr=( "server1" "server2" ) +ep=( "10.0.3.10" "10.0.3.11" ) + +$hexec ep1 ../common/sctp_server ${ep[0]} 38412 server1 >/dev/null 2>&1 & +$hexec ep2 ../common/sctp_server ${ep[1]} 38412 server2 >/dev/null 2>&1 & sleep 5 code=0 -servArr=( "server1" "server2" ) -ep=( "10.0.3.10" "10.0.3.11" ) j=0 waitCount=0 while [ $j -le 1 ] do - res=$($hexec c1 ./client ${ep[j]} 38412) + res=$($hexec c1 ../common/sctp_client 10.0.3.71 ${ep[j]} 38412) #echo $res if [[ $res == "${servArr[j]}" ]] then @@ -25,6 +26,7 @@ do then echo "All Servers are not UP" echo SCENARIO-SCTP-FULLNAT [FAILED] + sudo pkill -9 -x sctp_server >/dev/null 2>&1 exit 1 fi @@ -36,7 +38,7 @@ for i in {1..4} do for j in {0..1} do - res=$($hexec c1 ./client 20.20.20.1 38412) + res=$($hexec c1 ../common/sctp_client 10.0.3.71 20.20.20.1 38412) echo -e $res if [[ $res != "${servArr[j]}" ]] then @@ -51,6 +53,6 @@ then else echo SCENARIO-SCTP-FULLNAT [FAILED] fi -sudo pkill -9 -x server >/dev/null 2>&1 +sudo pkill -9 -x sctp_server >/dev/null 2>&1 exit $code diff --git a/cicd/sctpfullnatl2/config.sh b/cicd/sctpfullnatl2/config.sh index ab6968f8..7a119525 100755 --- a/cicd/sctpfullnatl2/config.sh +++ b/cicd/sctpfullnatl2/config.sh @@ -37,6 +37,6 @@ create_docker_host_cnbridge --host1 br1 --host2 c1 ##Create LB rule $dexec llb1 loxicmd create lb 10.2.100.85 --sctp=38412:38412 --endpoints=10.2.96.58:1,10.2.89.253:1 --mode=fullnat -#$dexec llb1 bash -c 'for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > "$i"; done' +$dexec llb1 bash -c 'for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > "$i"; done' sleep 10 diff --git a/cicd/sctpfullnatl2/validation.sh b/cicd/sctpfullnatl2/validation.sh index 8226881c..869a048c 100755 --- a/cicd/sctpfullnatl2/validation.sh +++ b/cicd/sctpfullnatl2/validation.sh @@ -1,18 +1,18 @@ #!/bin/bash source ../common.sh echo SCENARIO-SCTP-FULLNAT -$hexec ep1 ./server server1 & -$hexec ep2 ./server server2 & +servArr=( "server1" "server2" ) +ep=( "10.2.96.58" "10.2.89.253" ) +$hexec ep1 ../common/sctp_server ${ep[0]} 38412 server1 >/dev/null 2>&1 & +$hexec ep2 ../common/sctp_server ${ep[1]} 38412 server2 >/dev/null 2>&1 & sleep 5 code=0 -servArr=( "server1" "server2" ) -ep=( "10.2.96.58" "10.2.89.253" ) j=0 waitCount=0 while [ $j -le 1 ] do - res=$($hexec c1 ./client ${ep[j]} 38412) + res=$($hexec c1 ../common/sctp_client 10.2.9.19 ${ep[j]} 38412) #echo $res if [[ $res == "${servArr[j]}" ]] then @@ -25,6 +25,7 @@ do then echo "All Servers are not UP" echo SCENARIO-SCTP-FULLNAT [FAILED] + sudo pkill -9 -x sctp_server >/dev/null 2>&1 exit 1 fi @@ -36,7 +37,7 @@ for i in {1..4} do for j in {0..1} do - res=$($hexec c1 ./client 10.2.100.85 38412) + res=$($hexec c1 ../common/sctp_client 10.2.9.19 10.2.100.85 38412) echo -e $res if [[ $res != "${servArr[j]}" ]] then @@ -51,6 +52,6 @@ then else echo SCENARIO-SCTP-FULLNAT [FAILED] fi -sudo pkill -9 -x server >/dev/null 2>&1 +sudo pkill -9 -x sctp_server >/dev/null 2>&1 exit $code diff --git a/cicd/sctplb/validation.sh b/cicd/sctplb/validation.sh index ad30c8ab..c24906c9 100755 --- a/cicd/sctplb/validation.sh +++ b/cicd/sctplb/validation.sh @@ -1,19 +1,21 @@ #!/bin/bash source ../common.sh echo SCENARIO-sctplb -$hexec l3ep1 ../common/sctp_server server1 & -$hexec l3ep2 ../common/sctp_server server2 & -$hexec l3ep3 ../common/sctp_server server3 & -sleep 5 -code=0 servArr=( "server1" "server2" "server3" ) ep=( "31.31.31.1" "32.32.32.1" "33.33.33.1" ) + +$hexec l3ep1 ../common/sctp_server ${ep[0]} 8080 server1 >/dev/null 2>&1 & +$hexec l3ep2 ../common/sctp_server ${ep[1]} 8080 server2 >/dev/null 2>&1 & +$hexec l3ep3 ../common/sctp_server ${ep[2]} 8080 server3 >/dev/null 2>&1 & + +sleep 5 +code=0 j=0 waitCount=0 while [ $j -le 2 ] do - res=$($hexec l3h1 timeout 10 ../common/sctp_client ${ep[j]} 8080) + res=$($hexec l3h1 timeout 10 ../common/sctp_client 10.10.10.1 ${ep[j]} 8080) #echo $res if [[ $res == "${servArr[j]}" ]] then @@ -26,6 +28,7 @@ do then echo "All Servers are not UP" echo SCENARIO-sctplb [FAILED] + sudo pkill sctp_server >/dev/null 2>&1 exit 1 fi @@ -37,7 +40,7 @@ for i in {1..4} do for j in {0..2} do - res=$($hexec l3h1 timeout 10 ../common/sctp_client 20.20.20.1 2020) + res=$($hexec l3h1 timeout 10 ../common/sctp_client 10.10.10.1 20.20.20.1 2020) echo -e $res if [[ $res != "${servArr[j]}" ]] then @@ -46,7 +49,7 @@ do sleep 1 done done -sudo pkill sctp_server +sudo pkill sctp_server >/dev/null 2>&1 if [[ $code == 0 ]] then echo SCENARIO-sctplb [OK] diff --git a/cicd/sctplbdsr/validation.sh b/cicd/sctplbdsr/validation.sh index 18cf5b0e..6a08bd69 100755 --- a/cicd/sctplbdsr/validation.sh +++ b/cicd/sctplbdsr/validation.sh @@ -5,20 +5,21 @@ echo SCENARIO-sctplbdsr #$hexec l3ep2 socat -v -T0.5 sctp-l:2020,reuseaddr,fork system:"echo 'server2'; cat" >/dev/null 2>&1 & #$hexec l3ep3 socat -v -T0.5 sctp-l:2020,reuseaddr,fork system:"echo 'server3'; cat" >/dev/null 2>&1 & -$hexec l3ep1 ./sctp_server server1 & -$hexec l3ep2 ./sctp_server server2 & -$hexec l3ep3 ./sctp_server server3 & +servArr=( "server1" "server2" "server3" ) +ep=( "31.31.31.1" "32.32.32.1" "33.33.33.1" ) + +$hexec l3ep1 ./sctp_server ${ep[0]} 2020 server1 >/dev/null 2>&1 & +$hexec l3ep2 ./sctp_server ${ep[1]} 2020 server2 >/dev/null 2>&1 & +$hexec l3ep3 ./sctp_server ${ep[2]} 2020 server3 >/dev/null 2>&1 & sleep 5 code=0 -servArr=( "server1" "server2" "server3" ) -ep=( "31.31.31.1" "32.32.32.1" "33.33.33.1" ) j=0 waitCount=0 while [ $j -le 2 ] do #res=$($hexec l3h1 socat -T10 - SCTP:${ep[j]}:2020) - res=$($hexec l3h1 timeout 10 ../common/sctp_client ${ep[j]} 2020) + res=$($hexec l3h1 timeout 10 ../common/sctp_client 10.10.10.1 ${ep[j]} 2020) echo $res if [[ $res == "${servArr[j]}" ]] then diff --git a/cicd/sctptunlb/validation.sh b/cicd/sctptunlb/validation.sh index 0545a7a4..ea207b63 100755 --- a/cicd/sctptunlb/validation.sh +++ b/cicd/sctptunlb/validation.sh @@ -1,20 +1,22 @@ #!/bin/bash source ../common.sh echo SCENARIO-sctptunlb -$hexec l3e1 ./server server1 & -$hexec l3e2 ./server server2 & -$hexec l3e3 ./server server3 & +servArr=( "server1" "server2" "server3" ) +ep=( "25.25.25.1" "26.26.26.1" "27.27.27.1" ) +ueIP=( "" "32.32.32.1" "31.31.31.1" ) + +$hexec l3e1 ../common/sctp_server ${ep[0]} 8080 server1 >/dev/null 2>&1 & +$hexec l3e2 ../common/sctp_server ${ep[1]} 8080 server2 >/dev/null 2>&1 & +$hexec l3e3 ../common/sctp_server ${ep[2]} 8080 server3 >/dev/null 2>&1 & sleep 5 code=0 -servArr=( "server1" "server2" "server3" ) -ep=( "25.25.25.1" "26.26.26.1" "27.27.27.1" ) j=0 waitCount=0 while [ $j -le 2 ] do #res=$($hexec ue1 curl ${ep[j]}:8080) - res=`$hexec h1 ./client ${ep[j]} 8080` + res=`$hexec h1 ../common/sctp_client 32.32.32.1 ${ep[j]} 8080` #echo $res if [[ $res == "${servArr[j]}" ]] then @@ -27,6 +29,7 @@ do then echo "All Servers are not UP" echo SCENARIO-sctptunlb [FAILED] + sudo pkill sctp_server >/dev/null 2>&1 exit 1 fi @@ -40,7 +43,7 @@ for i in {1..2} do for j in {0..2} do - res=$($hexec h$k ./client 88.88.88.88 2020) + res=$($hexec h$k ../common/sctp_client ${ueIp[k]} 88.88.88.88 2020) echo -e $res if [[ $res != "${servArr[j]}" ]] then @@ -66,5 +69,6 @@ then else echo SCENARIO-sctptunlb [FAILED] fi +sudo pkill sctp_server >/dev/null 2>&1 exit $code From 53e04e00df3b9958a5357bb4963415017cc77349 Mon Sep 17 00:00:00 2001 From: Nikhil Malik Date: Fri, 14 Apr 2023 12:08:05 +0900 Subject: [PATCH 07/11] Typo corrected in the script --- cicd/sctptunlb/validation.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/cicd/sctptunlb/validation.sh b/cicd/sctptunlb/validation.sh index ea207b63..7d556ecd 100755 --- a/cicd/sctptunlb/validation.sh +++ b/cicd/sctptunlb/validation.sh @@ -43,20 +43,20 @@ for i in {1..2} do for j in {0..2} do - res=$($hexec h$k ../common/sctp_client ${ueIp[k]} 88.88.88.88 2020) + res=$($hexec h$k ../common/sctp_client ${ueIP[k]} 88.88.88.88 2020) echo -e $res if [[ $res != "${servArr[j]}" ]] then echo -e "Expected ${servArr[j]}, Received : $res" - if [[ "$res" != *"server"* ]]; - then - echo "llb1 ct" - $dexec llb1 loxicmd get ct - echo "llb2 ct" - $dexec llb2 loxicmd get ct - echo "llb2 ip neigh" - $dexec llb2 ip neigh - fi +# if [[ "$res" != *"server"* ]]; +# then +# echo "llb1 ct" +# $dexec llb1 loxicmd get ct +# echo "llb2 ct" +# $dexec llb2 loxicmd get ct +# echo "llb2 ip neigh" +# $dexec llb2 ip neigh +# fi code=1 fi sleep 1 From d40600a4a6710de736f6ee7cff4967313d5e18df Mon Sep 17 00:00:00 2001 From: Nikhil Malik Date: Fri, 14 Apr 2023 12:22:06 +0900 Subject: [PATCH 08/11] test case script fixed --- cicd/sctplbdsr/sctp_server | Bin 17408 -> 0 bytes cicd/sctplbdsr/validation.sh | 9 +++++---- 2 files changed, 5 insertions(+), 4 deletions(-) delete mode 100755 cicd/sctplbdsr/sctp_server diff --git a/cicd/sctplbdsr/sctp_server b/cicd/sctplbdsr/sctp_server deleted file mode 100755 index 4406c64e088ac6d6def12372910e852bde10afc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17408 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 LS~t6sj}`w5MRB{P diff --git a/cicd/sctplbdsr/validation.sh b/cicd/sctplbdsr/validation.sh index 6a08bd69..e1a02c93 100755 --- a/cicd/sctplbdsr/validation.sh +++ b/cicd/sctplbdsr/validation.sh @@ -8,9 +8,9 @@ echo SCENARIO-sctplbdsr servArr=( "server1" "server2" "server3" ) ep=( "31.31.31.1" "32.32.32.1" "33.33.33.1" ) -$hexec l3ep1 ./sctp_server ${ep[0]} 2020 server1 >/dev/null 2>&1 & -$hexec l3ep2 ./sctp_server ${ep[1]} 2020 server2 >/dev/null 2>&1 & -$hexec l3ep3 ./sctp_server ${ep[2]} 2020 server3 >/dev/null 2>&1 & +$hexec l3ep1 ../common/sctp_server ${ep[0]} 2020 server1 >/dev/null 2>&1 & +$hexec l3ep2 ../common/sctp_server ${ep[1]} 2020 server2 >/dev/null 2>&1 & +$hexec l3ep3 ../common/sctp_server ${ep[2]} 2020 server3 >/dev/null 2>&1 & sleep 5 code=0 @@ -32,6 +32,7 @@ do then echo "All Servers are not UP" echo SCENARIO-sctplbdsr [FAILED] + sudo pkill -9 sctp_server > /dev/null 2>&1 exit 1 fi fi @@ -75,6 +76,6 @@ else fi #sudo killall -9 socat >> /dev/null 2>&1 -sudo killall -9 sctp_server >> /dev/null 2>&1 +sudo pkill -9 sctp_server > /dev/null 2>&1 exit $code From 4f0d6d9d11e9faf759355f274e66359107ca0e52 Mon Sep 17 00:00:00 2001 From: Nikhil Malik Date: Mon, 17 Apr 2023 17:50:23 +0900 Subject: [PATCH 09/11] gh-242 : Stats fetched at age check --- loxilb-ebpf | 2 +- loxinet/dpebpf_linux.go | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/loxilb-ebpf b/loxilb-ebpf index e8bdea6b..ef0a38cb 160000 --- a/loxilb-ebpf +++ b/loxilb-ebpf @@ -1 +1 @@ -Subproject commit e8bdea6b4b694201c6bc7dc8c514f54f36112266 +Subproject commit ef0a38cbcafd3f9febec0d2a3933ec6a728e7588 diff --git a/loxinet/dpebpf_linux.go b/loxinet/dpebpf_linux.go index a411b54f..21e5dffd 100644 --- a/loxinet/dpebpf_linux.go +++ b/loxinet/dpebpf_linux.go @@ -171,7 +171,10 @@ func dpEbpfTicker() { C.llb_collect_map_stats(C.int(tbls[sel])) // Age any entries related to Conntrack - C.llb_collect_map_stats(C.int(C.LL_DP_CT_STATS_MAP)) + /* No need to fetch all stats in this fashion */ + //C.llb_collect_map_stats(C.int(C.LL_DP_CT_STATS_MAP)) + + /* Per entry stats will be fetched in C.ll_ct_map_ent_has_aged */ C.llb_age_map_entries(C.LL_DP_CT_MAP) C.llb_age_map_entries(C.LL_DP_FCV4_MAP) From 7f00b09ca4740d81ac91b6744f03bb0409b9f73f Mon Sep 17 00:00:00 2001 From: Nikhil Malik Date: Tue, 18 Apr 2023 11:36:51 +0900 Subject: [PATCH 10/11] sctp client and server updated for DSR case --- cicd/cluster2/validation.sh | 4 +-- cicd/cluster3/validation.sh | 14 ++++---- cicd/common/sctp_client | Bin 17336 -> 17480 bytes cicd/common/sctp_client.c | 16 +++++++--- cicd/common/sctp_server | Bin 17552 -> 17768 bytes cicd/common/sctp_server.c | 53 +++++++++++++++++++++++++++---- cicd/sctpfullnat/validation.sh | 4 +-- cicd/sctpfullnatl2/validation.sh | 4 +-- cicd/sctplb/validation.sh | 4 +-- cicd/sctplbdsr/config.sh | 2 +- cicd/sctplbdsr/validation.sh | 43 +++++++++++-------------- cicd/sctptunlb/validation.sh | 22 ++++++------- cicd/ulclsctplb/validation.sh | 4 +-- 13 files changed, 105 insertions(+), 65 deletions(-) diff --git a/cicd/cluster2/validation.sh b/cicd/cluster2/validation.sh index 76889474..d7b19ebe 100755 --- a/cicd/cluster2/validation.sh +++ b/cicd/cluster2/validation.sh @@ -117,7 +117,7 @@ function sctp_validate() { waitCount=0 while [ $j -le 2 ] do - res=$($hexec user timeout 10 ../common/sctp_client 1.1.1.1 ${ep[j]} 8080) + res=$($hexec user timeout 10 ../common/sctp_client 1.1.1.1 0 ${ep[j]} 8080) if [[ $res == "${servArr[j]}" ]] then echo "$res UP" >&2 @@ -141,7 +141,7 @@ function sctp_validate() { do for j in {0..2} do - res=$($hexec user timeout 10 ../common/sctp_client 1.1.1.1 20.20.20.1 2020) + res=$($hexec user timeout 10 ../common/sctp_client 1.1.1.1 0 20.20.20.1 2020) echo -e $res >&2 ids=`echo "${res//[!0-9]/}"` if [[ $res == *"server"* ]]; then diff --git a/cicd/cluster3/validation.sh b/cicd/cluster3/validation.sh index 5cc82f64..f49af260 100755 --- a/cicd/cluster3/validation.sh +++ b/cicd/cluster3/validation.sh @@ -90,9 +90,9 @@ function tcp_validate() { } function sctp_validate() { - $hexec ep1 ../common/sctp_server server1 & - $hexec ep2 ../common/sctp_server server2 & - $hexec ep3 ../common/sctp_server server3 & + $hexec ep1 ../common/sctp_server ${ep[0]} 8080 server1 >/dev/null 2>&1 & + $hexec ep2 ../common/sctp_server ${ep[1]} 8080 server2 >/dev/null 2>&1 & + $hexec ep3 ../common/sctp_server ${ep[2]} 8080 server3 >/dev/null 2>&1 & sleep 20 @@ -106,7 +106,7 @@ function sctp_validate() { else $hexec r2 ip route list match 20.20.20.1 >&2 echo "BGP Service Route [NOK]" >&2 - sudo pkill sctp_server + sudo pkill sctp_server >/dev/null 2>&1 return 1 fi @@ -116,7 +116,7 @@ function sctp_validate() { waitCount=0 while [ $j -le 2 ] do - res=$($hexec user timeout 10 ../common/sctp_client ${ep[j]} 8080) + res=$($hexec user timeout 10 ../common/sctp_client 1.1.1.1 0 ${ep[j]} 8080) if [[ $res == "${servArr[j]}" ]] then echo "$res UP" >&2 @@ -139,7 +139,7 @@ function sctp_validate() { do for j in {0..2} do - res=$($hexec user timeout 10 ../common/sctp_client 20.20.20.1 2020) + res=$($hexec user timeout 10 ../common/sctp_client 1.1.1.1 0 20.20.20.1 2020) echo -e $res >&2 ids=`echo "${res//[!0-9]/}"` if [[ $res == *"server"* ]]; then @@ -164,7 +164,7 @@ function sctp_validate() { sleep 1 done done - sudo pkill sctp_server + sudo pkill sctp_server >/dev/null 2>&1 echo $code } diff --git a/cicd/common/sctp_client b/cicd/common/sctp_client index b59f57f9bc9325df4749de634624b564ccc7c516..7e1cfcb764c67d24ec71c82a526a7dbe4028c06a 100755 GIT binary patch delta 3489 zcmZ`+4NP0t6~50u;O9W_vvD3KKYpfRq7-anOq{0t*sz9&MAVR#{;Z9FjHF>pLm-Yq zt5gsXZ+NaXoU^E1(@K^0KW!?AP9ss1LemANr4wk9n6>t zVAWW_Ex>|NQ+d{0z)dlD1A0t8?t8Qj?P$%S zROmDN%`4bt5sVu0Vbc7X@nByURA*J?wY44W?LFGvcBK0o9nr3C=+25*jz@dZ*xd{7 zWd+I&#E1=z_%ks{YwAz6(mJhCo)L1hHwzvdCS8&fgds;mv_d=*`s= zLH%xqHxK@S5u5p(+>s2c09$#{r5z2{aw5Z<4|~w-%!oLX;oUTLn*XEutgXmm_YtzJ z6g!~QcDL$q9`ctzU;3}24ByJzcK0w{qUFyQ*08|vtd6naJ6^aTe5)U8zrw?k=l&`o zv?bynufy-G!{^rF1UbmV>BL`ib*SqVjvGl z7L83C4KoGr1J9{=rAJV^gPS) z*^6|1m+5e^`QQHYV1S8mfgF#`Aosy&ByBX$KsrCzKZWd48o4PxO;e*^5k0jtG__=G9ywFw@WCTTuEKdI-`_-g zyP`ShYOLNxUi>3D`D;p5XYZRt{YBz)5jH0mFfbkOc}gDqSZYqj7FiCL=mx-4Xx=mg zMpr|~gEuUg=?J=8_QWTf;;S@4l8x(vah`_KO^yAZ;*_dWegNYRs}0c`Ma1lKVt=|* zuG~^wg55{W>CLqJ#QxRa;cnK>aOBzMWX)hPA(3aA;(v;?HpTxHc{&om*D5E=qiFtG z^P~4^F6p{eY&&`17uXC+fV9h}w5^QEPwy}KlKV@L_l7faj%44D=9vXTyC@Ri7;yV@x5_VQKG1~EGf#{sLN2lkGgqTQC>t{bxTpMp?(o3 z=r-zWsH<^v1V&?AZFV;Id3N$C-;4@M=i{@9|TNOUV|WjpHE@vj4; z7n!i~*+Pxg=N$uniWMs)z)sayM53qvbx2gpMSl_SFpkn8a!3m$en??N}o%AMChE~G7jz16BJ$g(?jG_e}ns z$z>+Zuuvs(+o^O_V;{CJ>7$8yP3`E#iFFuAH$--bMW+x81gB6^`=cA2mIT`E7-v|7 zS9g4+sa}Kn%HiXHmGfw~kwRh%YX(jIRO5GP`<)#e^!<`0dYQ=?CO>0x1u8QfsLZZ16F@1G9xTh%QI>%C>MsCZ)ug;_4aAR{*eM4Ko8}L@aC+4kVw|2h7nedSs zh2~vNPW?st5O3`JyMDxt?WjJ$8Nvp5tHvwn+gjJPFjwOf^rNC{Ke%dre4loJ`kguM0}sx=@NO;uKd5%Yc-Y22`0ryj9OC;VwR1dDkr1!%WC>aj>ASuJQi#_6 qp@G>*Xl+;fwdI}xSG|JA&eag&7eji?=Nm%S!%wKFkb|#RZ~GrA;J-Nl delta 2938 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 IVU}|K2eu3)z5oCK delta 3818 zcmZ`+eNa@_6~Ff_E4$0$egV5njXcPhq|xPL`H-lDU1Xg{20Lnl^^e4l2sUQaqSXoQ zR2Rif^IW%rXPj};bV@pRnkS~^XJo_6pLUNu`1gJzpxKXp50oh9omxeBgU=fEHxaGsPk;*5kt()xn` z7k6CJ=;IPt4C}Lgw(I7Oi=VCe`bwy2=i#|arT#~6y$?SzJd^E3niwM?`*|ZToHkU` zvoL0GgFVedf6g@eC9gYp{XVY`^7>s~@8k6;UQ>7{%}uW{9g2+}+R0HbM?dHKAzuFt z?iq`y3wp{uoU0)Bb*337a2y5DBV|F)oJNq-z3_Z`DYT?7b8TyCY9<>tY;M`KVawJX zo3?HJaT8omF9WM7x0GNq#h<22+-5VRWIM)Wiz4H1PwrMTW8}dmQ=WezO8^$JHu_?c zPM3yz^wkjfMi=y&YP?p>%jh z5}F1N5q%rcbxG(P@LAk2g6OMBs0m(1bPCayB-8>iL>F1CnQtbcnQ+eH_S(ciP##b6 z+TkDA<}kMDPC}jVM1~vATC8*c#?Zem!XS)z0dloh* zZB+-Ds;FP>wkpx8H_(XRewawa8xx7dka6!KD9$PmcOykTSARE=P}EZa6pczWZNW3V zVdzH5pfVgefhgJp)qxpxa7O)PMs1%_kI$%`GivvY+J-8>V22}79UY1sxeGLVS(uGP zi3UuH8foTggd=T(b|s2a8jhdFnW&MCNxo>ngX|U!;R0zBQ;gP#;F*Ish4Ywva)I5C z@c|y-RYs2;V?&8Xm=PSvL~mG8ub#Dlvs@QwtA)dVVye3X3Q>0 z9LbTXFw)yD+11E4B($Albz)C2{{8=Ad!i2E&if-?q62JL@m>TG7)2nSgPo&(i|H>Q zeu2#`UX1ANCs2*@=`A3wgy4>T&ek8fh>^8K{sHN>{u|NAC4|B_iiHTMHx=I7FQmQvJlnr<~DAKP#VB3bxicJdAg6W z2QMNms_iA-f6KIQ2qRp$hKDykf|~kKZM2K$Sg?oV2U#ELu*iD!6x)j|>##D{8=*{osp1b*e#$`5F=aZvD3(vSo`` zPxgI~yV}@yB4b=SDw`lISHghY>SwF88-tx4PbA((IfC*eO6x=-@e<1WC`V9!`L9Ic z4$As}!)y6Z(QfF-cN@q5nMkaH_wt`y&-z05;-7=QT~_Al%y z6Pjy(Lt36WXI;#2IIYcCi_q`z7rze$1uKkp?A3@Lhu1A|BIDN%@qyi_e`qOm)Vk?* zaQO24CJ#2lBEFa6Xwj!Wcs^7$MnC8BD*0YTn-jm z#C3)%F4e4%`Ut#GQ)m$z>7)z?YAP(^3{J{$5lwOB*?k}_uds;S>+wMin&P0zJ~*(v q!YM90Szpdk0+*LRl5nz@Yb(rhr8bG9U=A&|^e)w`Tnd)w=l>5B@-n&r diff --git a/cicd/common/sctp_server.c b/cicd/common/sctp_server.c index 0f8d9b4f..e49eaf33 100644 --- a/cicd/common/sctp_server.c +++ b/cicd/common/sctp_server.c @@ -14,7 +14,8 @@ int main(int argc, char* argv[]) { - struct sockaddr_in laddr = {0}; + struct sockaddr_in laddr[10] = {0}; + int i = 0, error; struct sockaddr_in caddr = {0}; int sockfd, n, flags; struct sctp_sndrcvinfo sinfo = {0}; @@ -22,10 +23,10 @@ int main(int argc, char* argv[]) { char recvbuff[RECVBUFSIZE + 1] = {0}; socklen_t clen; - char *saddr, *msg; + char *saddr, *saddrs, *msg; int lport, mlen; - saddr = argv[1]; + saddrs = argv[1]; lport = atoi(argv[2]); msg = argv[3]; @@ -35,12 +36,52 @@ int main(int argc, char* argv[]) { setsockopt(sockfd, IPPROTO_SCTP, SCTP_EVENTS, &event,sizeof(struct sctp_event_subscribe)); + const int enable = 1; + if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(int)) < 0) + perror("setsockopt(SO_REUSEADDR) failed"); + + i = 1; + if (strstr(saddrs, ",")) { + saddr = strtok(saddrs, ",\n"); + laddr[0].sin_family = AF_INET; + laddr[0].sin_port = htons(lport); + laddr[0].sin_addr.s_addr = inet_addr(saddr); + printf("%s\n", saddr); + saddr = strtok(NULL, ",\n"); + while(saddr != NULL) { + printf("%s\n", saddr); + laddr[i].sin_family = AF_INET; + laddr[i].sin_port = htons(lport); + laddr[i].sin_addr.s_addr = inet_addr(saddr); + saddr = strtok(NULL, ",\n"); + i++; + } + } else { + laddr[0].sin_family = AF_INET; + laddr[0].sin_port = htons(lport); + laddr[0].sin_addr.s_addr = inet_addr(saddrs); + } +#if 0 laddr.sin_family = AF_INET; laddr.sin_port = htons(lport); laddr.sin_addr.s_addr = inet_addr(saddr); - - bind(sockfd, (struct sockaddr *)&laddr, sizeof(struct sockaddr_in)); - +#endif + + error = bind(sockfd, (struct sockaddr *)&laddr[0], sizeof(struct sockaddr_in)); + if (error != 0) { + printf("\n\n\t\t***r: error binding addr:" + " %s. ***\n", strerror(errno)); + exit(1); + } + + if (i > 1) { + error = sctp_bindx(sockfd,(struct sockaddr*) &laddr[1], i - 1, SCTP_BINDX_ADD_ADDR); + if (error != 0) { + printf("\n\n\t\t***r: error adding addrs:" + " %s. ***\n", strerror(errno)); + exit(1); + } + } listen(sockfd, 1); while(1) diff --git a/cicd/sctpfullnat/validation.sh b/cicd/sctpfullnat/validation.sh index 26cc0c7a..64398307 100755 --- a/cicd/sctpfullnat/validation.sh +++ b/cicd/sctpfullnat/validation.sh @@ -13,7 +13,7 @@ j=0 waitCount=0 while [ $j -le 1 ] do - res=$($hexec c1 ../common/sctp_client 10.0.3.71 ${ep[j]} 38412) + res=$($hexec c1 ../common/sctp_client 10.0.3.71 0 ${ep[j]} 38412) #echo $res if [[ $res == "${servArr[j]}" ]] then @@ -38,7 +38,7 @@ for i in {1..4} do for j in {0..1} do - res=$($hexec c1 ../common/sctp_client 10.0.3.71 20.20.20.1 38412) + res=$($hexec c1 ../common/sctp_client 10.0.3.71 0 20.20.20.1 38412) echo -e $res if [[ $res != "${servArr[j]}" ]] then diff --git a/cicd/sctpfullnatl2/validation.sh b/cicd/sctpfullnatl2/validation.sh index 869a048c..6ddbfa7b 100755 --- a/cicd/sctpfullnatl2/validation.sh +++ b/cicd/sctpfullnatl2/validation.sh @@ -12,7 +12,7 @@ j=0 waitCount=0 while [ $j -le 1 ] do - res=$($hexec c1 ../common/sctp_client 10.2.9.19 ${ep[j]} 38412) + res=$($hexec c1 ../common/sctp_client 10.2.9.19 0 ${ep[j]} 38412) #echo $res if [[ $res == "${servArr[j]}" ]] then @@ -37,7 +37,7 @@ for i in {1..4} do for j in {0..1} do - res=$($hexec c1 ../common/sctp_client 10.2.9.19 10.2.100.85 38412) + res=$($hexec c1 ../common/sctp_client 10.2.9.19 0 10.2.100.85 38412) echo -e $res if [[ $res != "${servArr[j]}" ]] then diff --git a/cicd/sctplb/validation.sh b/cicd/sctplb/validation.sh index c24906c9..2d36c99d 100755 --- a/cicd/sctplb/validation.sh +++ b/cicd/sctplb/validation.sh @@ -15,7 +15,7 @@ j=0 waitCount=0 while [ $j -le 2 ] do - res=$($hexec l3h1 timeout 10 ../common/sctp_client 10.10.10.1 ${ep[j]} 8080) + res=$($hexec l3h1 timeout 10 ../common/sctp_client 10.10.10.1 0 ${ep[j]} 8080) #echo $res if [[ $res == "${servArr[j]}" ]] then @@ -40,7 +40,7 @@ for i in {1..4} do for j in {0..2} do - res=$($hexec l3h1 timeout 10 ../common/sctp_client 10.10.10.1 20.20.20.1 2020) + res=$($hexec l3h1 timeout 10 ../common/sctp_client 10.10.10.1 0 20.20.20.1 2020) echo -e $res if [[ $res != "${servArr[j]}" ]] then diff --git a/cicd/sctplbdsr/config.sh b/cicd/sctplbdsr/config.sh index bccd603c..fabffd27 100755 --- a/cicd/sctplbdsr/config.sh +++ b/cicd/sctplbdsr/config.sh @@ -67,4 +67,4 @@ $hexec l3h1 sysctl net.ipv4.conf.all.rp_filter=0 2>&1 >> /dev/null $hexec l3h1 sysctl net.ipv4.conf.vlan11.rp_filter=0 2>&1 >> /dev/null sleep 5 -$dexec llb1 loxicmd create lb 20.20.20.1 --sctp=2020:2020 --endpoints=31.31.31.1:1,32.32.32.1:1,33.33.33.1:1 --mode=dsr +$dexec llb1 loxicmd create lb --select=hash 20.20.20.1 --sctp=2020:2020 --endpoints=31.31.31.1:1,32.32.32.1:1,33.33.33.1:1 --mode=dsr diff --git a/cicd/sctplbdsr/validation.sh b/cicd/sctplbdsr/validation.sh index e1a02c93..88825917 100755 --- a/cicd/sctplbdsr/validation.sh +++ b/cicd/sctplbdsr/validation.sh @@ -8,9 +8,9 @@ echo SCENARIO-sctplbdsr servArr=( "server1" "server2" "server3" ) ep=( "31.31.31.1" "32.32.32.1" "33.33.33.1" ) -$hexec l3ep1 ../common/sctp_server ${ep[0]} 2020 server1 >/dev/null 2>&1 & -$hexec l3ep2 ../common/sctp_server ${ep[1]} 2020 server2 >/dev/null 2>&1 & -$hexec l3ep3 ../common/sctp_server ${ep[2]} 2020 server3 >/dev/null 2>&1 & +$hexec l3ep1 ../common/sctp_server 20.20.20.1,31.31.31.1 2020 server1 >/dev/null 2>&1 & +$hexec l3ep2 ../common/sctp_server 20.20.20.1,32.32.32.1 2020 server2 >/dev/null 2>&1 & +$hexec l3ep3 ../common/sctp_server 20.20.20.1,33.33.33.1 2020 server3 >/dev/null 2>&1 & sleep 5 code=0 @@ -19,7 +19,7 @@ waitCount=0 while [ $j -le 2 ] do #res=$($hexec l3h1 socat -T10 - SCTP:${ep[j]}:2020) - res=$($hexec l3h1 timeout 10 ../common/sctp_client 10.10.10.1 ${ep[j]} 2020) + res=$($hexec l3h1 timeout 10 ../common/sctp_client 10.10.10.1 2010 ${ep[j]} 2020) echo $res if [[ $res == "${servArr[j]}" ]] then @@ -39,31 +39,25 @@ do sleep 1 done -# sudo killall -9 socat +#sudo killall -9 sctp_server >/dev/null 2>&1 + +#$hexec l3ep1 ../common/sctp_server 20.20.20.1 2020 server1 >/dev/null 2>&1 & +#$hexec l3ep2 ../common/sctp_server 20.20.20.1 2020 server2 >/dev/null 2>&1 & +#$hexec l3ep3 ../common/sctp_server 20.20.20.1 2020 server3 >/dev/null 2>&1 & + sleep 5 nid=0 for j in {0..2} do - res=$($hexec l3h1 timeout 10 ../common/sctp_client 20.20.20.1 2020) + res=$($hexec l3h1 timeout 10 ../common/sctp_client 10.10.10.1 2010 20.20.20.1 2020) echo $res - ds=`echo "${res//[!0-9]/}"` - if [[ $res == *"server"* ]]; then - ids=`echo "${res//[!0-9]/}"` - if [[ $nid == 0 ]];then - nid=$((($ids + 1)%4)) - if [[ $nid == 0 ]];then - nid=1 - fi - elif [[ $nid != $((ids)) ]]; then - echo "Expected server$nid got server$((ids))" - code=1 - fi - nid=$((($ids + 1)%4)) - if [[ $nid == 0 ]];then - nid=1 - fi - else + if [[ $exp == "" ]] + then + exp=$res + fi + if [[ $exp != $res ]] + then code=1 fi sleep 1 @@ -76,6 +70,5 @@ else fi #sudo killall -9 socat >> /dev/null 2>&1 -sudo pkill -9 sctp_server > /dev/null 2>&1 - +sudo pkill -9 sctp_server >/dev/null 2>&1 exit $code diff --git a/cicd/sctptunlb/validation.sh b/cicd/sctptunlb/validation.sh index 7d556ecd..0004920e 100755 --- a/cicd/sctptunlb/validation.sh +++ b/cicd/sctptunlb/validation.sh @@ -16,7 +16,7 @@ waitCount=0 while [ $j -le 2 ] do #res=$($hexec ue1 curl ${ep[j]}:8080) - res=`$hexec h1 ../common/sctp_client 32.32.32.1 ${ep[j]} 8080` + res=`$hexec h1 ../common/sctp_client 32.32.32.1 0 ${ep[j]} 8080` #echo $res if [[ $res == "${servArr[j]}" ]] then @@ -43,20 +43,20 @@ for i in {1..2} do for j in {0..2} do - res=$($hexec h$k ../common/sctp_client ${ueIP[k]} 88.88.88.88 2020) + res=$($hexec h$k ../common/sctp_client ${ueIP[k]} 0 88.88.88.88 2020) echo -e $res if [[ $res != "${servArr[j]}" ]] then echo -e "Expected ${servArr[j]}, Received : $res" -# if [[ "$res" != *"server"* ]]; -# then -# echo "llb1 ct" -# $dexec llb1 loxicmd get ct -# echo "llb2 ct" -# $dexec llb2 loxicmd get ct -# echo "llb2 ip neigh" -# $dexec llb2 ip neigh -# fi + if [[ "$res" != *"server"* ]]; + then + echo "llb1 ct" + $dexec llb1 loxicmd get ct + echo "llb2 ct" + $dexec llb2 loxicmd get ct + echo "llb2 ip neigh" + $dexec llb2 ip neigh + fi code=1 fi sleep 1 diff --git a/cicd/ulclsctplb/validation.sh b/cicd/ulclsctplb/validation.sh index 11132c23..aca94809 100755 --- a/cicd/ulclsctplb/validation.sh +++ b/cicd/ulclsctplb/validation.sh @@ -16,7 +16,7 @@ while [ $j -le 2 ] do #res=$($hexec ue1 curl ${ep[j]}:8080) #res=`$hexec ue1 socat -T10 - SCTP:${ep[j]}:8080,bind=${ueIp[1]}` - res=`$hexec ue1 ../common/sctp_client ${ueIp[1]} ${ep[j]} 8080` + res=`$hexec ue1 ../common/sctp_client ${ueIp[1]} 0 ${ep[j]} 8080` echo $res if [[ $res == "${servArr[j]}" ]] then @@ -43,7 +43,7 @@ for i in {1..2} do for j in {0..2} do - res=$($hexec ue$k ../common/sctp_client ${ueIp[k]} 88.88.88.88 2020) + res=$($hexec ue$k ../common/sctp_client ${ueIp[k]} 0 88.88.88.88 2020) #res=$($hexec ue$k socat -T10 - SCTP:88.88.88.88:2020,bind=${ueIp[k]}) echo -e $res if [[ $res != "${servArr[j]}" ]] From f7ea89e961dfa98b038d9021c461a3e04c8a6ded Mon Sep 17 00:00:00 2001 From: Nikhil Malik Date: Tue, 18 Apr 2023 11:55:54 +0900 Subject: [PATCH 11/11] DSR to run with hash mode only --- api/restapi/handler/loadbalancer.go | 4 ++++ cicd/tcplbdsr1/config.sh | 2 +- cicd/tcplbdsr1/validation.sh | 10 +++++++--- cicd/tcplbdsr2/config.sh | 2 +- cicd/tcplbdsr2/validation.sh | 10 +++++++--- 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/api/restapi/handler/loadbalancer.go b/api/restapi/handler/loadbalancer.go index 7d8f9407..120d735a 100644 --- a/api/restapi/handler/loadbalancer.go +++ b/api/restapi/handler/loadbalancer.go @@ -46,6 +46,10 @@ func ConfigPostLoadbalancer(params operations.PostConfigLoadbalancerParams) midd }) } + if lbRules.Serv.Mode == cmn.LBModeDSR && lbRules.Serv.Sel != cmn.LbSelHash { + return &ResultResponse{Result: "Error: Only Hash Selection criteria allowed for DSR mode"} + } + tk.LogIt(tk.LogDebug, "[API] lbRules : %v\n", lbRules) _, err := ApiHooks.NetLbRuleAdd(&lbRules) if err != nil { diff --git a/cicd/tcplbdsr1/config.sh b/cicd/tcplbdsr1/config.sh index 8c407510..136b04e3 100755 --- a/cicd/tcplbdsr1/config.sh +++ b/cicd/tcplbdsr1/config.sh @@ -39,4 +39,4 @@ $hexec l3ep2 ip addr add 20.20.20.1/32 dev lo $hexec l3ep3 ip addr add 20.20.20.1/32 dev lo sleep 5 -$dexec llb1 loxicmd create lb 20.20.20.1 --tcp=2020:2020 --endpoints=31.31.31.1:1,32.32.32.1:1,33.33.33.1:1 --mode=dsr +$dexec llb1 loxicmd create lb 20.20.20.1 --select=hash --tcp=2020:2020 --endpoints=31.31.31.1:1,32.32.32.1:1,33.33.33.1:1 --mode=dsr diff --git a/cicd/tcplbdsr1/validation.sh b/cicd/tcplbdsr1/validation.sh index 6b39f22c..75afb0eb 100755 --- a/cicd/tcplbdsr1/validation.sh +++ b/cicd/tcplbdsr1/validation.sh @@ -34,11 +34,15 @@ done for j in {0..2} do - res=$($hexec l3h1 socat -T10 - TCP:20.20.20.1:2020) + res=$($hexec l3h1 socat -T10 - TCP:20.20.20.1:2020,sp=55001,reuseaddr) echo $res - if [[ $res != "${servArr[j]}" ]] + if [[ $exp == "" ]] then - code=1 + exp=$res + fi + if [[ $exp != $res ]] + then + code=1 fi sleep 1 done diff --git a/cicd/tcplbdsr2/config.sh b/cicd/tcplbdsr2/config.sh index 4a2bdf05..990f96fd 100755 --- a/cicd/tcplbdsr2/config.sh +++ b/cicd/tcplbdsr2/config.sh @@ -67,4 +67,4 @@ $hexec l3h1 sysctl net.ipv4.conf.all.rp_filter=0 2>&1 >> /dev/null $hexec l3h1 sysctl net.ipv4.conf.vlan11.rp_filter=0 2>&1 >> /dev/null sleep 5 -$dexec llb1 loxicmd create lb 20.20.20.1 --tcp=2020:2020 --endpoints=31.31.31.1:1,32.32.32.1:1,33.33.33.1:1 --mode=dsr +$dexec llb1 loxicmd create lb 20.20.20.1 --select=hash --tcp=2020:2020 --endpoints=31.31.31.1:1,32.32.32.1:1,33.33.33.1:1 --mode=dsr diff --git a/cicd/tcplbdsr2/validation.sh b/cicd/tcplbdsr2/validation.sh index bb5e1324..42d77c38 100755 --- a/cicd/tcplbdsr2/validation.sh +++ b/cicd/tcplbdsr2/validation.sh @@ -34,11 +34,15 @@ done for j in {0..2} do - res=$($hexec l3h1 socat -T10 - TCP:20.20.20.1:2020) + res=$($hexec l3h1 socat -T10 - TCP:20.20.20.1:2020,sp=55001,reuseaddr) echo $res - if [[ $res != "${servArr[j]}" ]] + if [[ $exp == "" ]] then - code=1 + exp=$res + fi + if [[ $exp != $res ]] + then + code=1 fi sleep 1 done