summaryrefslogtreecommitdiff
path: root/nuttx/net/arp/arp_send.c
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/net/arp/arp_send.c')
-rw-r--r--nuttx/net/arp/arp_send.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/nuttx/net/arp/arp_send.c b/nuttx/net/arp/arp_send.c
index e97156823..c7bbb92c8 100644
--- a/nuttx/net/arp/arp_send.c
+++ b/nuttx/net/arp/arp_send.c
@@ -229,6 +229,22 @@ int arp_send(in_addr_t ipaddr)
goto errout;
}
+ /* If this device does not require ARP bail out. ARP is only built of
+ * CONFIG_NET_ETHERNET is enabled which always requires ARP support. The
+ * following can happening only there multiple network interfaces enabled
+ * (CONFIG_NET_MULTINIC) and one of the interfaces is not Ethernet. At
+ * present, this is possible only if one of the interfaces is SLIP.
+ *
+ * REVISIT: This will need to be extended if PPP is ever incorporated.
+ */
+
+#ifdef CONFIG_NET_SLIP
+ if (dev->d_flags & IFF_NOARP)
+ {
+ return OK;
+ }
+#endif
+
/* Check if the destination address is on the local network. */
if (!net_ipaddr_maskcmp(ipaddr, dev->d_ipaddr, dev->d_netmask))