Skip to content

Commit 810389e

Browse files
Merge pull request openshift-kni#17 from fedepaol/sctp_tester
Move the sctptester source code from baremetal deploy repo to here.
2 parents 1b729f7 + 8541f78 commit 810389e

File tree

15 files changed

+1575
-2
lines changed

15 files changed

+1575
-2
lines changed

functests/sctp/sctp.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ var testerImage string
2828
func init() {
2929
testerImage = os.Getenv("SCTPTEST_IMAGE")
3030
if testerImage == "" {
31-
testerImage = "fedepaol/sctptest:v1.1"
31+
testerImage = "quay.io/fpaoline/sctptester:v1.0"
3232
}
3333
}
3434

@@ -200,7 +200,7 @@ func jobForNode(name, node, app string, cmd []string, args []string) *k8sv1.Pod
200200
Containers: []k8sv1.Container{
201201
{
202202
Name: name,
203-
Image: "quay.io/wcaban/net-toolbox:latest",
203+
Image: testerImage,
204204
Command: cmd,
205205
Args: args,
206206
},

go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ require (
66
github.com/ghodss/yaml v1.0.0
77
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
88
github.com/imdario/mergo v0.3.8 // indirect
9+
github.com/ishidawataru/sctp v0.0.0-20180918013207-6e2cb1366111
910
github.com/onsi/ginkgo v1.10.3
1011
github.com/onsi/gomega v1.7.1
1112
github.com/openshift/api v3.9.1-0.20191213091414-3fbf6bcf78e8+incompatible // indirect

go.sum

+1
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,7 @@ github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ
390390
github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ=
391391
github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
392392
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
393+
github.com/ishidawataru/sctp v0.0.0-20180918013207-6e2cb1366111 h1:NAAiV9ass6VReWFjuxqrMIq12WKlSULI6Gs3PxQghLA=
393394
github.com/ishidawataru/sctp v0.0.0-20180918013207-6e2cb1366111/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8=
394395
github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA=
395396
github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=

tools/sctptester/Dockerfile

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
2+
FROM golang:1.13 AS builder
3+
WORKDIR /gotest
4+
COPY . .
5+
RUN go mod init github.com/openshift-kni/cnf-features-deploy/sctptester
6+
RUN go get
7+
RUN go build -o sctptest
8+
9+
FROM centos:7
10+
COPY --from=builder /gotest/sctptest /usr/bin/sctptest
11+
RUN yum install -y lksctp-tools
12+
CMD ["/usr/bin/sctptest"]

tools/sctptester/main.go

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
"log"
6+
"net"
7+
8+
"github.com/ishidawataru/sctp"
9+
)
10+
11+
func main() {
12+
var server = flag.Bool("server", false, "")
13+
var ip = flag.String("ip", "0.0.0.0", "")
14+
var port = flag.Int("port", 0, "")
15+
var lport = flag.Int("lport", 0, "")
16+
17+
flag.Parse()
18+
19+
if *server {
20+
doServer(*ip, *port)
21+
} else {
22+
doClient(*ip, *port, *lport)
23+
}
24+
25+
}
26+
27+
func doClient(serverAddr string, port int, localport int) {
28+
address, err := net.ResolveIPAddr("ip", serverAddr)
29+
30+
server := &sctp.SCTPAddr{
31+
IPAddrs: []net.IPAddr{*address},
32+
Port: port,
33+
}
34+
35+
var laddr *sctp.SCTPAddr
36+
if localport != 0 {
37+
laddr = &sctp.SCTPAddr{
38+
Port: localport,
39+
}
40+
}
41+
conn, err := sctp.DialSCTP("sctp", laddr, server)
42+
if err != nil {
43+
log.Fatalf("failed to dial: %v", err)
44+
}
45+
46+
log.Printf("Dail LocalAddr: %s; RemoteAddr: %s", conn.LocalAddr(), conn.RemoteAddr())
47+
info := sctp.SndRcvInfo{
48+
Stream: uint16(0),
49+
PPID: uint32(0),
50+
}
51+
52+
n, err := conn.SCTPWrite([]byte("hello"), &info)
53+
if err != nil {
54+
log.Fatalf("failed to write: %v", err)
55+
}
56+
log.Printf("write: len %d", n)
57+
58+
}
59+
60+
func doServer(serverAddr string, port int) {
61+
address, err := net.ResolveIPAddr("ip", serverAddr)
62+
63+
listenAddr := &sctp.SCTPAddr{
64+
IPAddrs: []net.IPAddr{*address},
65+
Port: port,
66+
}
67+
ln, err := sctp.ListenSCTP("sctp", listenAddr)
68+
if err != nil {
69+
log.Fatalf("failed to listen: %v", err)
70+
}
71+
log.Printf("Listen on %s", ln.Addr())
72+
73+
conn, err := ln.Accept()
74+
if err != nil {
75+
log.Fatalf("failed to accept: %v", err)
76+
}
77+
log.Printf("Accepted Connection from RemoteAddr: %s", conn.RemoteAddr())
78+
buf := make([]byte, 512)
79+
n, err := conn.Read(buf)
80+
if err != nil {
81+
log.Fatalf("read failed: %v", err)
82+
}
83+
log.Printf("Received: %s", string(buf[:n]))
84+
}

vendor/github.com/ishidawataru/sctp/.gitignore

+16
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/ishidawataru/sctp/.travis.yml

+18
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/ishidawataru/sctp/GO_LICENSE

+27
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/ishidawataru/sctp/LICENSE

+201
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)