Lines 1048-1055
Link Here
|
1048 |
if (!V_arp_proxyall) |
1048 |
if (!V_arp_proxyall) |
1049 |
goto drop; |
1049 |
goto drop; |
1050 |
|
1050 |
|
|
|
1051 |
u_int fib = ifp->if_fib; |
1052 |
ARP_LOG(LOG_INFO, "proxy: request" |
1053 |
" from %s via %s, fib %d\n", |
1054 |
inet_ntoa_r(isaddr, addrbuf), |
1055 |
ifp->if_xname, |
1056 |
fib); |
1057 |
|
1051 |
/* XXX MRT use table 0 for arp reply */ |
1058 |
/* XXX MRT use table 0 for arp reply */ |
1052 |
if (fib4_lookup_nh_basic(0, itaddr, 0, 0, &nh4) != 0) |
1059 |
if (fib4_lookup_nh_basic(fib, itaddr, 0, 0, &nh4) != 0) |
1053 |
goto drop; |
1060 |
goto drop; |
1054 |
|
1061 |
|
1055 |
/* |
1062 |
/* |
Lines 1057-1064
Link Here
|
1057 |
* as this one came out of, or we'll get into a fight |
1064 |
* as this one came out of, or we'll get into a fight |
1058 |
* over who claims what Ether address. |
1065 |
* over who claims what Ether address. |
1059 |
*/ |
1066 |
*/ |
1060 |
if (nh4.nh_ifp == ifp) |
1067 |
if (nh4.nh_ifp == ifp) { |
|
|
1068 |
ARP_LOG(LOG_INFO, "proxy: request" |
1069 |
" from %s via %s, fib %d (dropping same if)\n", |
1070 |
inet_ntoa_r(isaddr, addrbuf), |
1071 |
ifp->if_xname, |
1072 |
fib); |
1061 |
goto drop; |
1073 |
goto drop; |
|
|
1074 |
} |
1062 |
|
1075 |
|
1063 |
(void)memcpy(ar_tha(ah), ar_sha(ah), ah->ar_hln); |
1076 |
(void)memcpy(ar_tha(ah), ar_sha(ah), ah->ar_hln); |
1064 |
(void)memcpy(ar_sha(ah), enaddr, ah->ar_hln); |
1077 |
(void)memcpy(ar_sha(ah), enaddr, ah->ar_hln); |
Lines 1071-1077
Link Here
|
1071 |
*/ |
1084 |
*/ |
1072 |
|
1085 |
|
1073 |
/* XXX MRT use table 0 for arp checks */ |
1086 |
/* XXX MRT use table 0 for arp checks */ |
1074 |
if (fib4_lookup_nh_basic(0, isaddr, 0, 0, &nh4) != 0) |
1087 |
if (fib4_lookup_nh_basic(fib, isaddr, 0, 0, &nh4) != 0) |
1075 |
goto drop; |
1088 |
goto drop; |
1076 |
if (nh4.nh_ifp != ifp) { |
1089 |
if (nh4.nh_ifp != ifp) { |
1077 |
ARP_LOG(LOG_INFO, "proxy: ignoring request" |
1090 |
ARP_LOG(LOG_INFO, "proxy: ignoring request" |