From 531ba5d72910c4720a7baab75ace313afd11a2cd Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Fri, 28 Aug 2020 12:58:19 +0200 Subject: Revert "Revert "Introduce SS7 IPv6 support"" Actual fix for the issue is applied in next commit. This reverts commit ee8128929755d88ace4e1e566448a14a970b1b40. Change-Id: I8b66dd97f47f1b2b72c101b9ce4444e75eb744c0 --- doc/examples/osmo-stp-multihome.cfg | 1 + doc/manuals/vty/osmo-stp_vty_reference.xml | 15 +++++++++------ src/osmo_ss7_vty.c | 19 +++++++++++-------- tests/vty/ss7_asp_test.vty | 4 ++-- tests/vty/vty_test_runner.py | 17 +++++++++++++++-- 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 @@ - + - + + - + - + + @@ -1787,10 +1789,11 @@ config-cs7-listen - + - + + 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__': -- cgit v1.2.3