Hoi, As an aside, you'll probably want an interface type of pointopoint (as opposed to broadcast) on a /31 OSPF link, as there can only be two participants. I don't understand how you configured VPP. Can you share the VPP commands you used to create the topology?
This little snippet of VPP configuration implements the topology you described: OSPF and OSPFv3 over a GRE v4 underlay: vpp# lcp create GigabitEthernet10/0/1 host-if e1 vpp# set interface state GigabitEthernet10/0/1 up vpp# set interface ip address GigabitEthernet10/0/1 2001:678:d78:200:0:0:1:01/124 vpp# set interface ip address GigabitEthernet10/0/1 192.168.10.17/31 vpp# create gre tunnel src 192.168.10.17 dst 192.168.10.16 gre0 vpp# set interface state gre0 up vpp# set interface ip address gre0 10.0.0.1/31 vpp# lcp create gre0 host-if gre0 tun And then in Linux for BIRD2: protocol ospf v2 ospf4 { ipv4 { export where source = RTS_DEVICE; import all; }; area 0 { interface "loop0" { stub yes; }; interface "gre0" { type pointopoint; cost 5; bfd off; }; }; } protocol ospf v3 ospf6 { ipv6 { export where source = RTS_DEVICE; import all; }; area 0 { interface "loop0" { stub yes; }; interface "gre0" { type pointopoint; cost 5; bfd off; }; }; } root@vpp0-1:/etc/bird# ip -br a lo UNKNOWN 127.0.0.1/8 ::1/128 loop0 UP 192.168.10.1/32 2001:678:d78:200::1/128 fe80::dcad:ff:fe00:0/64 e0 DOWN e1 UP 192.168.10.17/31 2001:678:d78:200::1:1/124 fe80::5054:ff:fe01:1001/64 e2 UP 192.168.10.18/31 2001:678:d78:200::2:1/124 fe80::5054:ff:fe01:1002/64 e3 DOWN gre0 UP 10.0.0.1/31 fe80::fd16:4fa7:d382:6eed/64 root@vpp0-1:/etc/bird# ping 10.0.0.0 PING 10.0.0.0 (10.0.0.0) 56(84) bytes of data. 64 bytes from 10.0.0.0: icmp_seq=1 ttl=64 time=2.82 ms 64 bytes from 10.0.0.0: icmp_seq=2 ttl=64 time=3.90 ms 64 bytes from 10.0.0.0: icmp_seq=3 ttl=64 time=3.64 ms 64 bytes from 10.0.0.0: icmp_seq=4 ttl=64 time=1.83 ms ^C --- 10.0.0.0 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 1.833/3.048/3.897/0.806 ms root@vpp0-1:/etc/bird# birdc show ospf nei ospf4 BIRD 2.0.7 ready. ospf4: Router ID Pri State DTime Interface Router IP 192.168.10.0 1 Full/PtP 36.196 gre0 10.0.0.0 root@vpp0-1:/etc/bird# birdc show ospf nei ospf6 BIRD 2.0.7 ready. ospf6: Router ID Pri State DTime Interface Router IP 192.168.10.0 1 Full/PtP 35.241 gre0 fe80::9045:a0b1:9634:358c root@vpp0-1:/etc/bird# groet, Pim On Sat, Mar 5, 2022 at 4:23 AM Chunhui Zhan <chun...@emmuni.com> wrote: > Note that if I dont use the loopback -- lcp --tunnel interfaces, just use > the plain physical interface to connect the two routers, both frr and bird > are working ok. > > It smells a little bit fishy here. > > On Fri, Mar 4, 2022 at 4:27 PM Chunhui Zhan <chun...@emmuni.com> wrote: > >> Hi, Pim, >> I disable the ping_plugin.so, now the icmp passed through the interface. >> >> I could not make frr work, so tried bird2, but got same results as frr. >> The ospf hello packet was not picked up one of the peer router. >> Here is my test topology >> >> pc1 loop1 ---lcp---vpp1 loopback === gre tunnel ==== vpp2 >> loopback---lcp---loop1 pc2 >> 10.10.0.201/31 >> 10.10.0.200/31 >> >> on pc1 tcpdump: both the hello packet are in and the bird show the state >> as Init >> bird> show ospf neighbors >> ospf4: >> Router ID Pri State DTime Interface Router IP >> 127.0.0.200 1 Init/Other 34.845 loop1 10.10.0.200 >> >> on pc2, tcpdump show both hello packet are send and receive from the >> interface, but the bird log only show send the hello packet, not recv any. >> so on pc2, the neighor is empty, the bird log contradict with the >> tcpdump. >> >> Any idea here? >> Thanks. >> Chunhui >> >> pc2 bird log, only send, no recv packets >> 2022-03-05 00:20:21.998 <TRACE> ospf4: HELLO packet sent via loop1 >> 2022-03-05 00:20:31.997 <TRACE> device1: Scanning interfaces >> 2022-03-05 00:20:31.999 <TRACE> ospf4: HELLO packet sent via loop1 >> 2022-03-05 00:20:41.997 <TRACE> device1: Scanning interfaces >> 2022-03-05 00:20:41.998 <TRACE> kernel4: Scanning routing table >> 2022-03-05 00:20:41.998 <TRACE> kernel4: Pruning table master4 >> 2022-03-05 00:20:41.998 <TRACE> kernel6: Pruning table master6 >> 2022-03-05 00:20:41.998 <TRACE> ospf4: HELLO packet sent via loop1 >> >> but on pc2(10.10.0.200) tcpdump, clearly show the hello packets send >> also recv hello from pc1(10.10.0.201). >> 00:10:01.999053 2a:ab:3c:4d:5e:6f (oui Unknown) > 01:00:5e:00:00:05 (oui >> Unknown), ethertype IPv4 (0x0800), length 78: (tos 0xc0, ttl 1, id 30153, >> offset 0, flags [none], proto OSPF (89), length 64) >> 10.10.0.200 > ospf-all.mcast.net: OSPFv2, Hello, length 44 >> Router-ID 127.0.0.200, Backbone Area, Authentication Type: none (0) >> Options [External] >> Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.254, Priority 1 >> >> 00:10:09.994781 2a:ab:3c:4d:5e:7f (oui Unknown) > 01:00:5e:00:00:05 (oui >> Unknown), ethertype IPv4 (0x0800), length 82: (tos 0xc0, ttl 1, id 63898, >> offset 0, flags [none], proto OSPF (89), length 68) >> 10.10.0.201 > ospf-all.mcast.net: OSPFv2, Hello, length 48 >> Router-ID 127.0.0.201, Backbone Area, Authentication Type: none (0) >> Options [External] >> Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.254, Priority 1 >> Designated Router 10.10.0.201 >> Neighbor List: >> 127.0.0.200 >> >> >> the bird.conf basically are same here. >> protocol ospf v2 ospf4 { >> debug all; >> ipv4 { export where source = RTS_DEVICE; import all; }; >> area 0 { >> interface "lo" { stub yes; }; >> interface "loop1" { type broadcast; cost 5; }; >> }; >> } >> >> >> >> >> >> On Fri, Mar 4, 2022 at 1:01 AM Pim van Pelt <p...@ipng.nl> wrote: >> >>> +vpp-dev >>> >>> I wasn't aware of a mailinglist outage, but I'm sure it'll solve itself >>> soon enough :-) putting the list back on CC. >>> >>> VPP has a ping plugin, which you are recommended to turn off when using >>> Linux controlplane - see the note all the way at the bottom here: >>> https://s3-docs.fd.io/vpp/22.06/developer/plugins/lcp.html?highlight=ping >>> >>> Leaving the ping plugin on will allow VPP to respond to pings itself (ie >>> not punt them into the TAP device for Linux to see), but as you observed, >>> higher level tools, like FRR, will not receive the packets in this case. >>> You didn't specify it very clearly, but for other readers, I assume when >>> you said 'running FRR, ... only see the hello broadcast packets' , that you >>> meant to run OSPF and you saw hello multicast packets. Incidentally, I >>> don't know why FRR insists on pinging its neighbors before establishing an >>> OSPF adjacency - it seems unnecessary, and even undesirable to me. >>> >>> groet, >>> Pim >>> >>> On Fri, Mar 4, 2022 at 1:15 AM Chunhui Zhan <chun...@emmuni.com> wrote: >>> >>>> Hi, Pim, >>>> The vpp-dev mail group is down, so I DM you here: >>>> >>>> I am using vpp 21.10 plus your private lcp repo >>>> github.com/pimvanpelt/lcpng.git/ >>>> >>>> I have a loopback interface 10.10.0.200/31 as bvi on two different >>>> boxes, and gre tunnel them together. The loopback interfaces are lcp to >>>> the hosts. >>>> >>>> I could ssh from one host loopback to another box, icmp ping works too. >>>> But the icmp reply is directly coming from the loopback on the vpp, the >>>> icmp packet was not forwarded to the host interface(verified through >>>> tcpdump). >>>> Running frr on the lcp host interface failed, only see the hello >>>> broadcast packets. >>>> >>>> Does the lcp not work on the loopback interface. >>>> >>>> Thanks. >>>> Chunhui >>>> >>> >>> >>> -- >>> Pim van Pelt <p...@ipng.nl> >>> PBVP1-RIPE - http://www.ipng.nl/ >>> >> -- Pim van Pelt <p...@ipng.nl> PBVP1-RIPE - http://www.ipng.nl/
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#20955): https://lists.fd.io/g/vpp-dev/message/20955 Mute This Topic: https://lists.fd.io/mt/89555183/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-