the case is that there is a device: on server A
oai0 Link encap:AMPR NET/ROM HWaddr
inet addr:10.0.1.1 Bcast:10.0.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
this is the route:
10.0.1.0 dev oai0 proto kernel scope link src 24 route 10.0.1.1
its ndo_start_xmit function forwards incoming packets to the user process.
as a matter of fact, I did see the log that ndo_start_xmit was processing on ping10.0.1.2 on A.
but on server B, which is connected to A, I add a route:
10.0.1.0 IP) dev eth0
of 24 via (A, and then ping 10.0.1.2 on B. my assumption is that this ping packet will also be processed by oai0"s ndo_start_xmit function, but it doesn"t seem to be.
I grabbed the packet on the interface connected to B on An and showed that the ping packet did come to A, but why wasn"t it forwarded to oai0?
I am a rookie to the linux kernel. Hope to get your help, thank you!