mirror of
https://github.com/FRRouting/frr.git
synced 2025-04-30 05:27:16 +02:00
lib, test: fix display ipv4 mapped ipv6 addresses
Display ipv4 mapped ipv6 addresses in the format ::ffff:A.B.C.D. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
This commit is contained in:
parent
40dce0be6a
commit
84ab0213fc
13
lib/ntop.c
13
lib/ntop.c
|
@ -116,7 +116,18 @@ inet4:
|
|||
best = i - curlen;
|
||||
bestlen = curlen;
|
||||
}
|
||||
/* do we want ::ffff:A.B.C.D? */
|
||||
if (best == 0 && bestlen == 5 && b[10] == 0xff && b[11] == 0xff) {
|
||||
/* ::ffff:A.B.C.D */
|
||||
*o++ = ':';
|
||||
*o++ = ':';
|
||||
*o++ = 'f';
|
||||
*o++ = 'f';
|
||||
*o++ = 'f';
|
||||
*o++ = 'f';
|
||||
*o++ = ':';
|
||||
b += 12;
|
||||
goto inet4;
|
||||
}
|
||||
if (best == 0 && bestlen == 6) {
|
||||
*o++ = ':';
|
||||
*o++ = ':';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"::ffff:202:202\/128":[
|
||||
"::ffff:2.2.2.2\/128":[
|
||||
{
|
||||
"prefix":"::ffff:202:202\/128",
|
||||
"prefix":"::ffff:2.2.2.2\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -16,9 +16,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:303:303\/128":[
|
||||
"::ffff:3.3.3.3\/128":[
|
||||
{
|
||||
"prefix":"::ffff:303:303\/128",
|
||||
"prefix":"::ffff:3.3.3.3\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -33,9 +33,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:404:404\/128":[
|
||||
"::ffff:4.4.4.4\/128":[
|
||||
{
|
||||
"prefix":"::ffff:404:404\/128",
|
||||
"prefix":"::ffff:4.4.4.4\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -50,9 +50,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:505:505\/128":[
|
||||
"::ffff:5.5.5.5\/128":[
|
||||
{
|
||||
"prefix":"::ffff:505:505\/128",
|
||||
"prefix":"::ffff:5.5.5.5\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"::ffff:202:202\/128":[
|
||||
"::ffff:2.2.2.2\/128":[
|
||||
{
|
||||
"prefix":"::ffff:202:202\/128",
|
||||
"prefix":"::ffff:2.2.2.2\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -16,9 +16,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:303:303\/128":[
|
||||
"::ffff:3.3.3.3\/128":[
|
||||
{
|
||||
"prefix":"::ffff:303:303\/128",
|
||||
"prefix":"::ffff:3.3.3.3\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -33,9 +33,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:404:404\/128":[
|
||||
"::ffff:4.4.4.4\/128":[
|
||||
{
|
||||
"prefix":"::ffff:404:404\/128",
|
||||
"prefix":"::ffff:4.4.4.4\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -50,9 +50,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:505:505\/128":[
|
||||
"::ffff:5.5.5.5\/128":[
|
||||
{
|
||||
"prefix":"::ffff:505:505\/128",
|
||||
"prefix":"::ffff:5.5.5.5\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"::ffff:202:202\/128":[
|
||||
"::ffff:2.2.2.2\/128":[
|
||||
{
|
||||
"prefix":"::ffff:202:202\/128",
|
||||
"prefix":"::ffff:2.2.2.2\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -16,9 +16,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:303:303\/128":[
|
||||
"::ffff:3.3.3.3\/128":[
|
||||
{
|
||||
"prefix":"::ffff:303:303\/128",
|
||||
"prefix":"::ffff:3.3.3.3\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -33,9 +33,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:404:404\/128":[
|
||||
"::ffff:4.4.4.4\/128":[
|
||||
{
|
||||
"prefix":"::ffff:404:404\/128",
|
||||
"prefix":"::ffff:4.4.4.4\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -50,9 +50,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:505:505\/128":[
|
||||
"::ffff:5.5.5.5\/128":[
|
||||
{
|
||||
"prefix":"::ffff:505:505\/128",
|
||||
"prefix":"::ffff:5.5.5.5\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"::ffff:202:202\/128":[
|
||||
"::ffff:2.2.2.2\/128":[
|
||||
{
|
||||
"prefix":"::ffff:202:202\/128",
|
||||
"prefix":"::ffff:2.2.2.2\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -16,9 +16,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:303:303\/128":[
|
||||
"::ffff:3.3.3.3\/128":[
|
||||
{
|
||||
"prefix":"::ffff:303:303\/128",
|
||||
"prefix":"::ffff:3.3.3.3\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -33,9 +33,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:404:404\/128":[
|
||||
"::ffff:4.4.4.4\/128":[
|
||||
{
|
||||
"prefix":"::ffff:404:404\/128",
|
||||
"prefix":"::ffff:4.4.4.4\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -50,9 +50,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:505:505\/128":[
|
||||
"::ffff:5.5.5.5\/128":[
|
||||
{
|
||||
"prefix":"::ffff:505:505\/128",
|
||||
"prefix":"::ffff:5.5.5.5\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
|
|
@ -10,7 +10,7 @@ hostname rt1
|
|||
!
|
||||
interface lo
|
||||
ip address 1.1.1.1/32
|
||||
ipv6 address ::ffff:0101:0101/128
|
||||
ipv6 address ::ffff:1.1.1.1/128
|
||||
!
|
||||
interface eth-rt2
|
||||
ip address 10.0.1.1/24
|
||||
|
|
|
@ -7,7 +7,7 @@ hostname rt2
|
|||
!
|
||||
interface lo
|
||||
ip address 2.2.2.2/32
|
||||
ipv6 address ::ffff:0202:0202/128
|
||||
ipv6 address ::ffff:2.2.2.2/128
|
||||
!
|
||||
interface eth-rt1
|
||||
ip address 10.0.1.2/24
|
||||
|
|
|
@ -7,7 +7,7 @@ hostname rt3
|
|||
!
|
||||
interface lo
|
||||
ip address 3.3.3.3/32
|
||||
ipv6 address ::ffff:0303:0303/128
|
||||
ipv6 address ::ffff:3.3.3.3/128
|
||||
!
|
||||
interface eth-rt1
|
||||
ip address 10.0.2.2/24
|
||||
|
|
|
@ -7,7 +7,7 @@ hostname rt4
|
|||
!
|
||||
interface lo
|
||||
ip address 4.4.4.4/32
|
||||
ipv6 address ::ffff:0404:0404/128
|
||||
ipv6 address ::ffff:4.4.4.4/128
|
||||
!
|
||||
interface eth-rt3
|
||||
ip address 10.0.4.2/24
|
||||
|
|
|
@ -7,7 +7,7 @@ hostname rt5
|
|||
!
|
||||
interface lo
|
||||
ip address 5.5.5.5/32
|
||||
ipv6 address ::ffff:0505:0505/128
|
||||
ipv6 address ::ffff:5.5.5.5/128
|
||||
!
|
||||
interface eth-rt2
|
||||
ip address 10.0.3.2/24
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"::ffff:202:202\/128":[
|
||||
"::ffff:2.2.2.2\/128":[
|
||||
{
|
||||
"prefix":"::ffff:202:202\/128",
|
||||
"prefix":"::ffff:2.2.2.2\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -16,9 +16,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:303:303\/128":[
|
||||
"::ffff:3.3.3.3\/128":[
|
||||
{
|
||||
"prefix":"::ffff:303:303\/128",
|
||||
"prefix":"::ffff:3.3.3.3\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -33,9 +33,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:404:404\/128":[
|
||||
"::ffff:4.4.4.4\/128":[
|
||||
{
|
||||
"prefix":"::ffff:404:404\/128",
|
||||
"prefix":"::ffff:4.4.4.4\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -50,9 +50,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:505:505\/128":[
|
||||
"::ffff:5.5.5.5\/128":[
|
||||
{
|
||||
"prefix":"::ffff:505:505\/128",
|
||||
"prefix":"::ffff:5.5.5.5\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"::ffff:202:202\/128":[
|
||||
"::ffff:2.2.2.2\/128":[
|
||||
{
|
||||
"prefix":"::ffff:202:202\/128",
|
||||
"prefix":"::ffff:2.2.2.2\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -16,9 +16,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:303:303\/128":[
|
||||
"::ffff:3.3.3.3\/128":[
|
||||
{
|
||||
"prefix":"::ffff:303:303\/128",
|
||||
"prefix":"::ffff:3.3.3.3\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -33,9 +33,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:404:404\/128":[
|
||||
"::ffff:4.4.4.4\/128":[
|
||||
{
|
||||
"prefix":"::ffff:404:404\/128",
|
||||
"prefix":"::ffff:4.4.4.4\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -50,9 +50,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:505:505\/128":[
|
||||
"::ffff:5.5.5.5\/128":[
|
||||
{
|
||||
"prefix":"::ffff:505:505\/128",
|
||||
"prefix":"::ffff:5.5.5.5\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"::ffff:202:202\/128":[
|
||||
"::ffff:2.2.2.2\/128":[
|
||||
{
|
||||
"prefix":"::ffff:202:202\/128",
|
||||
"prefix":"::ffff:2.2.2.2\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -16,9 +16,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:303:303\/128":[
|
||||
"::ffff:3.3.3.3\/128":[
|
||||
{
|
||||
"prefix":"::ffff:303:303\/128",
|
||||
"prefix":"::ffff:3.3.3.3\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -33,9 +33,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:404:404\/128":[
|
||||
"::ffff:4.4.4.4\/128":[
|
||||
{
|
||||
"prefix":"::ffff:404:404\/128",
|
||||
"prefix":"::ffff:4.4.4.4\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -50,9 +50,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:505:505\/128":[
|
||||
"::ffff:5.5.5.5\/128":[
|
||||
{
|
||||
"prefix":"::ffff:505:505\/128",
|
||||
"prefix":"::ffff:5.5.5.5\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"::ffff:202:202\/128":[
|
||||
"::ffff:2.2.2.2\/128":[
|
||||
{
|
||||
"prefix":"::ffff:202:202\/128",
|
||||
"prefix":"::ffff:2.2.2.2\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -16,9 +16,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:303:303\/128":[
|
||||
"::ffff:3.3.3.3\/128":[
|
||||
{
|
||||
"prefix":"::ffff:303:303\/128",
|
||||
"prefix":"::ffff:3.3.3.3\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -33,9 +33,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:404:404\/128":[
|
||||
"::ffff:4.4.4.4\/128":[
|
||||
{
|
||||
"prefix":"::ffff:404:404\/128",
|
||||
"prefix":"::ffff:4.4.4.4\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
@ -50,9 +50,9 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"::ffff:505:505\/128":[
|
||||
"::ffff:5.5.5.5\/128":[
|
||||
{
|
||||
"prefix":"::ffff:505:505\/128",
|
||||
"prefix":"::ffff:5.5.5.5\/128",
|
||||
"protocol":"ospf6",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
|
|
|
@ -10,7 +10,7 @@ hostname rt1
|
|||
!
|
||||
interface lo
|
||||
ip address 1.1.1.1/32
|
||||
ipv6 address ::ffff:0101:0101/128
|
||||
ipv6 address ::ffff:1.1.1.1/128
|
||||
!
|
||||
interface eth-rt2
|
||||
ip address 10.0.1.1/24
|
||||
|
|
|
@ -7,7 +7,7 @@ hostname rt2
|
|||
!
|
||||
interface lo
|
||||
ip address 2.2.2.2/32
|
||||
ipv6 address ::ffff:0202:0202/128
|
||||
ipv6 address ::ffff:2.2.2.2/128
|
||||
!
|
||||
interface eth-rt1
|
||||
ip address 10.0.1.2/24
|
||||
|
|
|
@ -7,7 +7,7 @@ hostname rt3
|
|||
!
|
||||
interface lo
|
||||
ip address 3.3.3.3/32
|
||||
ipv6 address ::ffff:0303:0303/128
|
||||
ipv6 address ::ffff:3.3.3.3/128
|
||||
!
|
||||
interface eth-rt1
|
||||
ip address 10.0.2.2/24
|
||||
|
|
|
@ -7,7 +7,7 @@ hostname rt4
|
|||
!
|
||||
interface lo
|
||||
ip address 4.4.4.4/32
|
||||
ipv6 address ::ffff:0404:0404/128
|
||||
ipv6 address ::ffff:4.4.4.4/128
|
||||
!
|
||||
interface eth-rt3
|
||||
ip address 10.0.4.2/24
|
||||
|
|
|
@ -7,7 +7,7 @@ hostname rt5
|
|||
!
|
||||
interface lo
|
||||
ip address 5.5.5.5/32
|
||||
ipv6 address ::ffff:0505:0505/128
|
||||
ipv6 address ::ffff:5.5.5.5/128
|
||||
!
|
||||
interface eth-rt2
|
||||
ip address 10.0.3.2/24
|
||||
|
|
|
@ -210,7 +210,7 @@ def test_protocols_convergence():
|
|||
"vrfName": "r1-vrf-101",
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "::ffff:c0a8:6429",
|
||||
"ip": "::ffff:192.168.100.41",
|
||||
}
|
||||
],
|
||||
}
|
||||
|
@ -227,8 +227,8 @@ def test_protocols_convergence():
|
|||
"192.168.100.41": {
|
||||
"nexthopIp": "192.168.100.41",
|
||||
},
|
||||
"::ffff:c0a8:6429": {
|
||||
"nexthopIp": "::ffff:c0a8:6429",
|
||||
"::ffff:192.168.100.41": {
|
||||
"nexthopIp": "::ffff:192.168.100.41",
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
@ -670,7 +670,7 @@ def test_configure_gua_on_unnumbered_intf(request):
|
|||
{
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "::ffff:a00:501",
|
||||
"ip": "::ffff:10.0.5.1",
|
||||
"hostname": "r1",
|
||||
"afi": "ipv6",
|
||||
"scope": "global",
|
||||
|
@ -754,7 +754,7 @@ def test_configure_gua_on_unnumbered_intf(request):
|
|||
assert (
|
||||
result is None
|
||||
), "Testcase {} : Failed \n Error: Nexthop for prefix 11.0.20.1 \
|
||||
is not ::ffff:a00:501".format(
|
||||
is not ::ffff:10.0.5.1".format(
|
||||
tc_name
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in a new issue