summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-08-28 12:58:19 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2020-08-28 17:14:29 +0200
commit531ba5d72910c4720a7baab75ace313afd11a2cd (patch)
treea5aa9bda0a9521bdfdeb36e14dd66db922f4f1ef
parentfc3d9a963ef16cf7d3e495a22eab63424eea1a28 (diff)
Revert "Revert "Introduce SS7 IPv6 support""
Actual fix for the issue is applied in next commit. This reverts commit ee8128929755d88ace4e1e566448a14a970b1b40. Change-Id: I8b66dd97f47f1b2b72c101b9ce4444e75eb744c0
-rw-r--r--doc/examples/osmo-stp-multihome.cfg1
-rw-r--r--doc/manuals/vty/osmo-stp_vty_reference.xml15
-rw-r--r--src/osmo_ss7_vty.c19
-rw-r--r--tests/vty/ss7_asp_test.vty4
-rwxr-xr-xtests/vty/vty_test_runner.py17
5 files changed, 38 insertions, 18 deletions
diff --git a/doc/examples/osmo-stp-multihome.cfg b/doc/examples/osmo-stp-multihome.cfg
index 5b0c84f..64874da 100644
--- a/doc/examples/osmo-stp-multihome.cfg
+++ b/doc/examples/osmo-stp-multihome.cfg
@@ -20,3 +20,4 @@ cs7 instance 0
accept-asp-connections dynamic-permitted
local-ip 127.0.0.2
local-ip 127.0.0.1
+ local-ip ::1
diff --git a/doc/manuals/vty/osmo-stp_vty_reference.xml b/doc/manuals/vty/osmo-stp_vty_reference.xml
index e904469..ff8103a 100644
--- a/doc/manuals/vty/osmo-stp_vty_reference.xml
+++ b/doc/manuals/vty/osmo-stp_vty_reference.xml
@@ -1741,16 +1741,18 @@
<param name='.TEXT' doc='Text until the end of the line' />
</params>
</command>
- <command id='remote-ip A.B.C.D'>
+ <command id='remote-ip (A.B.C.D|X:X::X:X)'>
<params>
<param name='remote-ip' doc='Specify Remote IP Address of ASP' />
- <param name='A.B.C.D' doc='Remote IP Address of ASP' />
+ <param name='A.B.C.D' doc='Remote IPv4 Address of ASP' />
+ <param name='X:X::X:X' doc='Remote IPv6 Address of ASP' />
</params>
</command>
- <command id='local-ip A.B.C.D'>
+ <command id='local-ip (A.B.C.D|X:X::X:X)'>
<params>
<param name='local-ip' doc='Specify Local IP Address from which to contact ASP' />
- <param name='A.B.C.D' doc='Local IP Address from which to contact of ASP' />
+ <param name='A.B.C.D' doc='Local IPv4 Address from which to contact of ASP' />
+ <param name='X:X::X:X' doc='Local IPv6 Address from which to contact of ASP' />
</params>
</command>
<command id='qos-class &lt;0-255&gt;'>
@@ -1787,10 +1789,11 @@
</node>
<node id='config-cs7-listen'>
<name>config-cs7-listen</name>
- <command id='local-ip A.B.C.D'>
+ <command id='local-ip (A.B.C.D|X:X::X:X)'>
<params>
<param name='local-ip' doc='Configure the Local IP Address for xUA' />
- <param name='A.B.C.D' doc='IP Address to use for XUA' />
+ <param name='A.B.C.D' doc='IPv4 Address to use for XUA' />
+ <param name='X:X::X:X' doc='IPv6 Address to use for XUA' />
</params>
</command>
<command id='accept-asp-connections (pre-configured|dynamic-permitted)'>
diff --git a/src/osmo_ss7_vty.c b/src/osmo_ss7_vty.c
index 686105e..4591156 100644
--- a/src/osmo_ss7_vty.c
+++ b/src/osmo_ss7_vty.c
@@ -470,9 +470,10 @@ DEFUN(no_cs7_xua, no_cs7_xua_cmd,
}
DEFUN(xua_local_ip, xua_local_ip_cmd,
- "local-ip A.B.C.D",
+ "local-ip " VTY_IPV46_CMD,
"Configure the Local IP Address for xUA\n"
- "IP Address to use for XUA\n")
+ "IPv4 Address to use for XUA\n"
+ "IPv6 Address to use for XUA\n")
{
struct osmo_xua_server *xs = vty->index;
@@ -623,9 +624,10 @@ DEFUN(no_cs7_asp, no_cs7_asp_cmd,
}
DEFUN(asp_local_ip, asp_local_ip_cmd,
- "local-ip A.B.C.D",
+ "local-ip " VTY_IPV46_CMD,
"Specify Local IP Address from which to contact ASP\n"
- "Local IP Address from which to contact of ASP\n")
+ "Local IPv4 Address from which to contact of ASP\n"
+ "Local IPv6 Address from which to contact of ASP\n")
{
struct osmo_ss7_asp *asp = vty->index;
if (osmo_ss7_asp_peer_add_host(&asp->cfg.local, asp, argv[0]) != 0) {
@@ -636,9 +638,10 @@ DEFUN(asp_local_ip, asp_local_ip_cmd,
}
DEFUN(asp_remote_ip, asp_remote_ip_cmd,
- "remote-ip A.B.C.D",
+ "remote-ip " VTY_IPV46_CMD,
"Specify Remote IP Address of ASP\n"
- "Remote IP Address of ASP\n")
+ "Remote IPv4 Address of ASP\n"
+ "Remote IPv6 Address of ASP\n")
{
struct osmo_ss7_asp *asp = vty->index;
if (osmo_ss7_asp_peer_add_host(&asp->cfg.remote, asp, argv[0]) != 0) {
@@ -1812,10 +1815,10 @@ int osmo_ss7_vty_go_parent(struct vty *vty)
asp = vty->index;
/* If no local addr was set */
if (!asp->cfg.local.host_cnt)
- osmo_ss7_asp_peer_add_host(&asp->cfg.local, asp, NULL);
+ osmo_ss7_asp_peer_add_host(&asp->cfg.local, asp, "localhost");
/* If no remote addr was set */
if (!asp->cfg.remote.host_cnt)
- osmo_ss7_asp_peer_add_host(&asp->cfg.remote, asp, "127.0.0.1");
+ osmo_ss7_asp_peer_add_host(&asp->cfg.remote, asp, "localhost");
osmo_ss7_asp_restart(asp);
vty->node = L_CS7_NODE;
vty->index = asp->inst;
diff --git a/tests/vty/ss7_asp_test.vty b/tests/vty/ss7_asp_test.vty
index 7411b1f..ee1b3e5 100644
--- a/tests/vty/ss7_asp_test.vty
+++ b/tests/vty/ss7_asp_test.vty
@@ -215,8 +215,8 @@ ss7_asp_vty_test(config-cs7)# asp my-asp 12345 54321 m3ua
ss7_asp_vty_test(config-cs7-asp)# list
...
description .TEXT
- remote-ip A.B.C.D
- local-ip A.B.C.D
+ remote-ip (A.B.C.D|X:X::X:X)
+ local-ip (A.B.C.D|X:X::X:X)
qos-class <0-255>
role (sg|asp|ipsp)
sctp-role (client|server)
diff --git a/tests/vty/vty_test_runner.py b/tests/vty/vty_test_runner.py
index 605bc93..dff26c3 100755
--- a/tests/vty/vty_test_runner.py
+++ b/tests/vty/vty_test_runner.py
@@ -111,7 +111,9 @@ class TestVTYSTP(TestVTYBase):
# first check if STP is listening in required addresses:
found = False
for i in range(5):
- if self.check_sctp_sock_local(['127.0.0.1', '127.0.0.2'], 2905):
+ if self.check_sctp_sock_local(['127.0.0.1', '127.0.0.2',
+ '0000:0000:0000:0000:0000:0000:0000:0001'],
+ 2905):
found = True
break
else:
@@ -122,6 +124,7 @@ class TestVTYSTP(TestVTYBase):
proto = socket.IPPROTO_SCTP
except AttributeError: # it seems to be not defined under python2?
proto = 132
+ # IPv4:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, proto)
s.bind(('127.0.0.3', 0))
try:
@@ -129,7 +132,17 @@ class TestVTYSTP(TestVTYBase):
except socket.error as msg:
s.close()
self.assertTrue(False)
- print("Connected to STP through SCTP")
+ print("Connected to STP through SCTP (IPv4)")
+ s.close()
+ # IPv6:
+ s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM, proto)
+ s.bind(('::1', 0))
+ try:
+ s.connect(('::1',2905))
+ except socket.error as msg:
+ s.close()
+ self.assertTrue(False)
+ print("Connected to STP through SCTP (IPv6)")
s.close()
if __name__ == '__main__':