|
@@ -149,14 +149,6 @@ static const struct neigh_ops arp_direct_ops = {
|
|
|
.connected_output = neigh_direct_output,
|
|
|
};
|
|
|
|
|
|
-static const struct neigh_ops arp_broken_ops = {
|
|
|
- .family = AF_INET,
|
|
|
- .solicit = arp_solicit,
|
|
|
- .error_report = arp_error_report,
|
|
|
- .output = neigh_compat_output,
|
|
|
- .connected_output = neigh_compat_output,
|
|
|
-};
|
|
|
-
|
|
|
struct neigh_table arp_tbl = {
|
|
|
.family = AF_INET,
|
|
|
.key_len = 4,
|
|
@@ -260,35 +252,6 @@ static int arp_constructor(struct neighbour *neigh)
|
|
|
in old paradigm.
|
|
|
*/
|
|
|
|
|
|
-#if 1
|
|
|
- /* So... these "amateur" devices are hopeless.
|
|
|
- The only thing, that I can say now:
|
|
|
- It is very sad that we need to keep ugly obsolete
|
|
|
- code to make them happy.
|
|
|
-
|
|
|
- They should be moved to more reasonable state, now
|
|
|
- they use rebuild_header INSTEAD OF hard_start_xmit!!!
|
|
|
- Besides that, they are sort of out of date
|
|
|
- (a lot of redundant clones/copies, useless in 2.1),
|
|
|
- I wonder why people believe that they work.
|
|
|
- */
|
|
|
- switch (dev->type) {
|
|
|
- default:
|
|
|
- break;
|
|
|
- case ARPHRD_ROSE:
|
|
|
-#if IS_ENABLED(CONFIG_AX25)
|
|
|
- case ARPHRD_AX25:
|
|
|
-#if IS_ENABLED(CONFIG_NETROM)
|
|
|
- case ARPHRD_NETROM:
|
|
|
-#endif
|
|
|
- neigh->ops = &arp_broken_ops;
|
|
|
- neigh->output = neigh->ops->output;
|
|
|
- return 0;
|
|
|
-#else
|
|
|
- break;
|
|
|
-#endif
|
|
|
- }
|
|
|
-#endif
|
|
|
if (neigh->type == RTN_MULTICAST) {
|
|
|
neigh->nud_state = NUD_NOARP;
|
|
|
arp_mc_map(addr, neigh->ha, dev, 1);
|