From: Mechthild Buescher <[email protected]>
Date: Thursday, 1 July 2021 at 14:51
To: Neale Ranns <[email protected]>, Benoit Ganne (bganne)
<[email protected]>, [email protected] <[email protected]>
Subject: RE: [vpp-dev] next-hop-table between two FIB tables results in punt
and 'unknown ip protocol'
Hi all,
I still don’t have success. This is the configuration I tried:
set interface state NCIC-1-v1 up
create host-interface name Vpp2Host
set interface state host-Vpp2Host up
ip table add 4093
create sub-interfaces host-Vpp2Host 4093
set interface state host-Vpp2Host.4093 up
set interface ip table host-Vpp2Host.4093 4093
set interface ip address host-Vpp2Host.4093 198.19.255.249/29
ip table add 1
create sub-interfaces NCIC-1-v1 1
set interface state NCIC-1-v1.1 up
set interface ip table NCIC-1-v1.1 1
did you miss giving the interface an address here…
ip route add 198.19.255.248/29 table 1 via 0.0.0.0 next-hop-table 4093
this …
ip table add 2
create sub-interfaces NCIC-1-v1 2
set interface state NCIC-1-v1.2 up
set interface ip table NCIC-1-v1.2 2
set interface ip address NCIC-1-v1.2 10.10.203.19/29
ip route add 198.19.255.248/29 table 2 via 198.19.255.249 next-hop-table 4093
this …
ip table add 3
create sub-interfaces NCIC-1-v1 3
set interface state NCIC-1-v1.3 up
set interface ip table NCIC-1-v1.3 3
set interface ip address NCIC-1-v1.3 10.10.203.19/29
ip route add 198.19.255.248/29 table 3 via 198.19.255.249 ip4-look-in-table 4093
and this are all different. Are you hedging your bets 😊
This is how I tried the config:
vppctl ping 198.19.255.253 table-id 4093
116 bytes from 198.19.255.253: icmp_seq=2 ttl=64 time=9.2805 ms
vppctl ping 198.19.255.253 table-id 1
Failed: no egress interface
vppctl ping vppctl sh int addr
Ext-0 (dn):
NCIC-1-v1 (up):
NCIC-1-v1.1 (up):
NCIC-1-v1.2 (up):
L3 10.10.203.19/29 ip4 table-id 2 fib-idx 3
NCIC-1-v1.3 (up):
L3 10.10.203.19/29 ip4 table-id 3 fib-idx 4
NCIC-1-v2 (dn):
Radio-0 (dn):
host-Vpp2Host (up):
host-Vpp2Host.4093 (up):
L3 198.19.255.249/29 ip4 table-id 4093 fib-idx 1
local0 (dn):table-id 2
Statistics: 5 sent, 0 received, 100% packet loss
vppctl ping 198.19.255.253 table-id 3
Failed: no egress interface
The ping code uses the FIB to find egress interface. To do this it does a
lookup on the destination address and then asks of the resulting FIB entry to
get a resolving interface. A FIB entry that requires a second lookup cannot
return a resolving interface. Two options, try ‘ping X source <ITF>’ to give
ping the interface you want used, or add the routes the right way.
ip route add 198.19.255.248/29 table 3 via host-Vpp2Host.4093
/neale
This is what I see in vpp:
vppctl sh int addr
Ext-0 (dn):
NCIC-1-v1 (up):
NCIC-1-v1.1 (up):
NCIC-1-v1.2 (up):
L3 10.10.203.19/29 ip4 table-id 2 fib-idx 3
NCIC-1-v1.3 (up):
L3 10.10.203.19/29 ip4 table-id 3 fib-idx 4
NCIC-1-v2 (dn):
Radio-0 (dn):
host-Vpp2Host (up):
host-Vpp2Host.4093 (up):
L3 198.19.255.249/29 ip4 table-id 4093 fib-idx 1
local0 (dn):
vppctl sh ip fib 198.19.255.253
ipv4-VRF:0, fib_index:0, flow hash:[src dst sport dport proto flowlabel ]
epoch:0 flags:none locks:[default-route:1, ]
0.0.0.0/0 fib:0 index:0 locks:2
default-route refs:1 entry-flags:drop, src-flags:added,contributing,active,
path-list:[0] locks:2 flags:drop, uPRF-list:0 len:0 itfs:[]
path:[0] pl-index:0 ip4 weight=1 pref=0 special: cfg-flags:drop,
[@0]: dpo-drop ip4
forwarding: unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:1 buckets:1 uRPF:0 to:[0:0]]
[0] [@0]: dpo-drop ip4
ipv4-VRF:4093, fib_index:1, flow hash:[src dst sport dport proto flowlabel ]
epoch:0 flags:none locks:[CLI:2, adjacency:1, recursive-resolution:2, ]
198.19.255.253/32 fib:1 index:41 locks:2
adjacency refs:1 entry-flags:attached, src-flags:added,contributing,active,
cover:12
path-list:[54] locks:2 uPRF-list:46 len:1 itfs:[6, ]
path:[60] pl-index:54 ip4 weight=1 pref=0 attached-nexthop:
oper-flags:resolved,
198.19.255.253 host-Vpp2Host.4093
[@0]: ipv4 via 198.19.255.253 host-Vpp2Host.4093: mtu:9000 next:3
flags:[] a215f39524f302fe349f8c8a81000ffd0800
Extensions:
path:60 adj-flags:[refines-cover]
forwarding: unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:42 buckets:1 uRPF:46 to:[6:576]]
[0] [@5]: ipv4 via 198.19.255.253 host-Vpp2Host.4093: mtu:9000 next:3
flags:[] a215f39524f302fe349f8c8a81000ffd0800
ipv4-VRF:1, fib_index:2, flow hash:[src dst sport dport proto flowlabel ]
epoch:0 flags:none locks:[CLI:2, ]
198.19.255.248/29 fib:2 index:21 locks:2
CLI refs:1 src-flags:added,contributing,active,
path-list:[31] locks:2 flags:shared, uPRF-list:23 len:0 itfs:[]
path:[33] pl-index:31 ip4 weight=1 pref=0 deag: oper-flags:resolved,
fib-index:1
forwarding: unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:22 buckets:1 uRPF:23 to:[0:0]]
[0] [@11]: dst-address,unicast lookup in ipv4-VRF:4093
ipv4-VRF:2, fib_index:3, flow hash:[src dst sport dport proto flowlabel ]
epoch:0 flags:none locks:[CLI:2, ]
198.19.255.248/29 fib:3 index:31 locks:2
CLI refs:1 src-flags:added,contributing,active,
path-list:[42] locks:2 flags:shared, uPRF-list:34 len:0 itfs:[]
path:[46] pl-index:42 ip4 weight=1 pref=0 recursive: oper-flags:resolved,
via 198.19.255.249 in fib:1 via-fib:15 via-dpo:[dpo-load-balance:16]
forwarding: unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:32 buckets:1 uRPF:34 to:[5:480]]
[0] [@12]: dpo-load-balance: [proto:ip4 index:16 buckets:1 uRPF:18
to:[6:576] via:[5:480]]
[0] [@2]: dpo-receive: 198.19.255.249 on host-Vpp2Host.4093
ipv4-VRF:3, fib_index:4, flow hash:[src dst sport dport proto flowlabel ]
epoch:0 flags:none locks:[CLI:2, ]
0.0.0.0/0 fib:4 index:32 locks:2
default-route refs:1 entry-flags:drop, src-flags:added,contributing,active,
path-list:[44] locks:2 flags:drop, uPRF-list:36 len:0 itfs:[]
path:[48] pl-index:44 ip4 weight=1 pref=0 special: cfg-flags:drop,
[@0]: dpo-drop ip4
forwarding: unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:33 buckets:1 uRPF:36 to:[0:0]]
[0] [@0]: dpo-drop ip4
Do you have any ideas?
BR/Mechthild
From: Neale Ranns <[email protected]>
Sent: Thursday, 1 July 2021 11:42
To: Benoit Ganne (bganne) <[email protected]>; Mechthild Buescher
<[email protected]>; [email protected]
Subject: Re: [vpp-dev] next-hop-table between two FIB tables results in punt
and 'unknown ip protocol'
From: Benoit Ganne (bganne) <[email protected]<mailto:[email protected]>>
Date: Thursday, 1 July 2021 at 11:35
To: Neale Ranns <[email protected]<mailto:[email protected]>>, Mechthild
Buescher
<[email protected]<mailto:[email protected]>>,
[email protected]<mailto:[email protected]>
<[email protected]<mailto:[email protected]>>
Subject: RE: [vpp-dev] next-hop-table between two FIB tables results in punt
and 'unknown ip protocol'
>> As 198.19.255.249 is the IP of host-Vpp2Host.4093, VPP interprets it as
>> you want to deliver the packet locally instead of forwarding it. Try
>> changing it to:
>> ip route add 198.19.255.248/29 table 1 via 0.0.0.0 next-hop-table 4093
> 0.0.0.0/32 in any table is a drop. One cannot specify a route to be
> recursive via another network, i.e. via 0.0.0.0/0, VPP doesn't support
> that.
I do not disagree with the rest of your comment, however this worked for me
though - maybe because of some odd cli behavior?
probably 😊
vpp# create packet-generator interface pg0
vpp# create packet-generator interface pg1
vpp# set int ip addr pg0 192.168.1.1/24
vpp# set int st pg0 up
vpp# ip table add 4093
vpp# set int st pg1 up
vpp# set int ip table pg1 4093
vpp# set int ip address pg1 198.19.255.249/29
vpp# ip neigh pg1 198.19.255.253 1.2.3 static
vpp# ip route add 198.19.255.248/29 via 0.0.0.0 next-hop-table 4093
vpp# sh ip fib 198.19.255.253 table 0
ipv4-VRF:0, fib_index:0, flow hash:[src dst sport dport proto flowlabel ]
epoch:0 flags:none locks:[default-route:1, ]
198.19.255.248/29 fib:0 index:21 locks:2
CLI refs:1 src-flags:added,contributing,active,
path-list:[29] locks:2 flags:shared, uPRF-list:27 len:0 itfs:[]
path:[33] pl-index:29 ip4 weight=1 pref=0 deag: oper-flags:resolved,
fib-index:1
forwarding: unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:23 buckets:1 uRPF:27 to:[1:100]]
[0] [@12]: dst-address,unicast lookup in ipv4-VRF:4093
this is a lookup-DPO.
Looks like the CLI interprets ‘via 0.0.0.0 next-hop-table 4093’ and ‘via
ip4-look-in-table 4093’ as the same thing.
/neale
And tracing seems to give the expected result:
00:00:02:247022: pg-input
stream x, 100 bytes, sw_if_index 1
current data 0, length 100, buffer-pool 0, ref-count 1, trace handle 0x0
UDP: 192.168.1.2 -> 198.19.255.253
tos 0x00, ttl 64, length 100, checksum 0xf2cd dscp CS0 ecn NON_ECN
fragment id 0x0000
UDP: 4321 -> 1234
length 72, checksum 0x7deb
00:00:02:247055: ip4-input
UDP: 192.168.1.2 -> 198.19.255.253
tos 0x00, ttl 64, length 100, checksum 0xf2cd dscp CS0 ecn NON_ECN
fragment id 0x0000
UDP: 4321 -> 1234
length 72, checksum 0x7deb
00:00:02:247079: ip4-lookup
fib 0 dpo-idx 0 flow hash: 0x00000000
UDP: 192.168.1.2 -> 198.19.255.253
tos 0x00, ttl 64, length 100, checksum 0xf2cd dscp CS0 ecn NON_ECN
fragment id 0x0000
UDP: 4321 -> 1234
length 72, checksum 0x7deb
00:00:02:247088: lookup-ip4-dst
fib-index:1 addr:198.19.255.253 load-balance:22
00:00:02:247092: ip4-rewrite
tx_sw_if_index 2 dpo-idx 4 : ipv4 via 198.19.255.253 pg1: mtu:9000 next:3
flags:[] 00010002000302fe257345030800 flow hash: 0x00000000
00000000: 00010002000302fe25734503080045000064000000003f11f3cdc0a80102c613
00000020: fffd10e104d200487deb000102030405060708090a0b0c0d0e0f1011
00:00:02:247099: pg1-output
pg1
IP4: 02:fe:25:73:45:03 -> 00:01:00:02:00:03
UDP: 192.168.1.2 -> 198.19.255.253
tos 0x00, ttl 63, length 100, checksum 0xf3cd dscp CS0 ecn NON_ECN
fragment id 0x0000
UDP: 4321 -> 1234
length 72, checksum 0x7deb
00:00:02:247106: pg1-tx
buffer 0x9ffd4: current data -14, length 114, buffer-pool 0, ref-count 1,
trace handle 0x0
loop-counter 1
IP4: 02:fe:25:73:45:03 -> 00:01:00:02:00:03
UDP: 192.168.1.2 -> 198.19.255.253
tos 0x00, ttl 63, length 100, checksum 0xf3cd dscp CS0 ecn NON_ECN
fragment id 0x0000
UDP: 4321 -> 1234
length 72, checksum 0x7deb
ben
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#19691): https://lists.fd.io/g/vpp-dev/message/19691
Mute This Topic: https://lists.fd.io/mt/83895986/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-