Hi All, I notice that if BGP is directly connected, when BGP started, the bgp_start_locked() is called and using neigh_find2() to lookup the neighbor. In neigh_find2(), bird will loop iface_list and comparing the remote IP address with the IP prefix of interface, checking whether is the subnet. Now, I have a question that why not using route table to find the neighbor ? Since I have one case that make me have some confusion.
Test Case: DUT1 DUT2 DUT3 lo interface 2000::1111/128 , interface3 3000:1::8/112 <-----------------------> interface4 3000:1::9/112, lo interface: 2000::2222/128 interface1 2000::1/112 <------>interface2: 2000::1/112 Igor the route table configuration, suppose the route is correct. 1. Anyone known the topology connection is normal or correct ? 2. if yes, create BGP peer with loopback interface 2000::1111, remote IP 2000::2222, directly connection. 3. BGP peer will use 2000::2222 to compare with interface prefix on DUT1, find the neighbor interface2 with prefix 2000::1/112 [interface2 on DUT2] BUT, actually, BGP peer TCP connection is not directly connected, and TCP connection don't using interface2 on DUT2, but using interface3 on DUT2 to connect interface4 of DUT3. Best Regards, Arvin Gan