Hi Michael,
Both of;
vppctl ip mroute 224.0.0.0/8 via GigabitEthernet0/4/0 Accept
vppctl ip mroute 224.0.0.0/8 via local Forward
the first says you are accepting (i.e RPF checks on) GigE0/4/0 the second says
you are ‘forwarding/replicating’ to VPP’s local IP stack.
The mfib equivalent of the fib API you were using is;
extern fib_node_index_t mfib_table_entry_special_add(u32 fib_index,
const mfib_prefix_t
*prefix,
mfib_source_t source,
mfib_entry_flags_t flags,
index_t rep_dpo);
if you include the flag MFIB_ENTRY_ACCEPT_ALL_ITF then mfib will accept from
any incoming interface, hence you won’t need an explicit ‘Accept’ rule. But
this API is strict about the last argument ‘dpo’ being a replicate DPO type.
See the mfib_test.c examples on how to construct one for use with the API.
/neale
From: <[email protected]> on behalf of Michael Borokhovich
<[email protected]>
Date: Tuesday, 10 October 2017 at 00:41
To: "Shaw, Jeffrey B" <[email protected]>
Cc: "[email protected]" <[email protected]>, vpp-dev
<[email protected]>
Subject: Re: [vpp-dev] [vppsb-dev] Router plugin with VPP 1707 - incoming OSPF
Hello packets are dropped by VPP
I tried various options, like below, but none of the work. How can I use the
mroute to specify a node (and not an interface or an address)?
vppctl ip mroute 224.0.0.0/8 via GigabitEthernet0/4/0
vppctl ip mroute 224.0.0.0/8 via GigabitEthernet0/4/0 Accept
vppctl ip mroute 224.0.0.0/8 via GigabitEthernet0/4/0 Forward
On Mon, Oct 9, 2017 at 6:36 PM, Shaw, Jeffrey B <[email protected]>
wrote:
Probably, but I don’t know the command. Essentially you want a CLI command
that configures a fib to direct packets/flows to an arbitrary node.
Maybe “ip route” or “ip mroute” has what you need.
DBGvpp# ip help
mroute ip mroute [add|del] <dst-ip-addr>/<width>
[table <table-id>] [via <next-hop-ip-addr> [<interface>],
…
route ip route [add|del] [count <n>]
<dst-ip-addr>/<width> [table <table-id>] [via <next-hop-ip-addr> \
[<interface>] [weight <weight>]]
| [via arp <interface> <adj-hop-ip-addr>] |
[via
drop|punt|local<id>|arp|classify <classify-idx>] [lookup in table
<out-table-id>]
-Jeff
From: Michael Borokhovich [mailto:[email protected]]
Sent: Monday, October 09, 2017 3:26 PM
To: Shaw, Jeffrey B <[email protected]>
Cc: vpp-dev <[email protected]>; [email protected]
Subject: Re: [vppsb-dev] Router plugin with VPP 1707 - incoming OSPF Hello
packets are dropped by VPP
Jef, is there a cli command I can use to instruct VPP to forward multicast to
that node?
On Mon, Oct 9, 2017 at 6:23 PM, Shaw, Jeffrey B <[email protected]>
wrote:
We have this code, which is supposed to tell the fib that packets going to the
224.0.0.x/24 network should be delivered to our node.
{
dpo_proto_t proto = 0;
dpo_id_t dpo = DPO_INVALID;
fib_prefix_t pfx = {};
pfx.fp_addr.ip4.as_u32 = 0x000000E0; /* 224.0.0.0 */
pfx.fp_len = 24;
pfx.fp_proto = FIB_PROTOCOL_IP4;
proto = DPO_PROTO_IP4;
vlib_node_add_next (vm, ip4_lookup_node.index, im->tx_node_index);
dpo_set(&dpo, tap_inject_dpo_type, proto, ~0);
fib_table_entry_special_dpo_add(0,
&pfx,
FIB_SOURCE_API,
FIB_ENTRY_FLAG_EXCLUSIVE,
&dpo);
dpo_reset(&dpo);
}
It is possible this code isn’t working the same as it has in the past.
With the FIB changes since the router plugin was initially developed, there
might be a different/better way to get multicast packets delivered to our node.
-Jef
From: [email protected] [mailto:[email protected]] On
Behalf Of Michael Borokhovich
Sent: Monday, October 09, 2017 3:16 PM
To: vpp-dev <[email protected]>; [email protected]
Subject: Re: [vppsb-dev] Router plugin with VPP 1707 - incoming OSPF Hello
packets are dropped by VPP
Here is the trace of the packet that is dropped. Any help is very appreciated.
00:05:18:275995: dpdk-input
GigabitEthernet0/4/0 rx queue 0
buffer 0x446a: current data 14, length 68, free-list 0, clone-count 0,
totlen-nifb 0, trace 0x1
PKT MBUF: port 0, nb_segs 1, pkt_len 82
buf_len 2176, data_len 82, ol_flags 0x0, data_off 128, phys_addr 0x6990d980
packet_type 0x0
IP4: fa:16:3e:4a:b3:60 -> 01:00:5e:00:00:05
OSPF: 10.0.10.1 -> 224.0.0.5
tos 0xc0, ttl 1, length 68, checksum 0x2986
fragment id 0x9b15
00:05:18:276166: ip4-input
OSPF: 10.0.10.1 -> 224.0.0.5
tos 0xc0, ttl 1, length 68, checksum 0x2986
fragment id 0x9b15
00:05:18:276403: ip4-mfib-forward-lookup
fib 0 entry 0
00:05:18:276503: ip4-mfib-forward-rpf
entry 0 -1
00:05:18:276516: ip4-drop
OSPF: 10.0.10.1 -> 224.0.0.5
tos 0xc0, ttl 1, length 68, checksum 0x2986
fragment id 0x9b15
00:05:18:276595: error-drop
ip4-input: ip4 adjacency drop
On Mon, Oct 9, 2017 at 12:14 PM, Michael Borokhovich <[email protected]>
wrote:
Hi,
After applying the fixes suggested by Jeff, I was able to compile the router
plugin with VPP 1707.
It runs and allows to enable tap-inject and set up interfaces addresses without
crashing.
The problem I'm facing now is with setting up FRR OSPF on top of the VPP+router
plugin.
FRR OSPF is configured and I see OSPF Hello packets flowing out of the machine.
However, the incoming OSPF Hello packets are dropped by VPP (with the reason
"ip4 adjacency drop") and never reach the FRR.
The same settings worked with VPP 1609 + router plugin. Maybe I need to
configure something manually in VPP to allow reception of OSPF multicast
packets?
So, to summarize the problem, incoming OSPF Hello packets are dropped by VPP,
while the outgoing hello packets successfully sent by FRR via VPP to the
neighbouring router.
Any help is appreciated.
Thanks,
Michael.
_______________________________________________
vpp-dev mailing list
[email protected]
https://lists.fd.io/mailman/listinfo/vpp-dev