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: <vpp-dev-boun...@lists.fd.io> on behalf of Michael Borokhovich <michael...@gmail.com> Date: Tuesday, 10 October 2017 at 00:41 To: "Shaw, Jeffrey B" <jeffrey.b.s...@intel.com> Cc: "vppsb-...@lists.fd.io" <vppsb-...@lists.fd.io>, vpp-dev <vpp-dev@lists.fd.io> 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 <jeffrey.b.s...@intel.com> 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:michael...@gmail.com] Sent: Monday, October 09, 2017 3:26 PM To: Shaw, Jeffrey B <jeffrey.b.s...@intel.com> Cc: vpp-dev <vpp-dev@lists.fd.io>; vppsb-...@lists.fd.io 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 <jeffrey.b.s...@intel.com> 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: vppsb-dev-boun...@lists.fd.io [mailto:vppsb-dev-boun...@lists.fd.io] On Behalf Of Michael Borokhovich Sent: Monday, October 09, 2017 3:16 PM To: vpp-dev <vpp-dev@lists.fd.io>; vppsb-...@lists.fd.io 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 <michael...@gmail.com> 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 vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev