You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2022/11/27 04:13:52 UTC
[nuttx] 01/02: net/arp: add link layer check for arp_out/arp_ipin
This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 81325a8a3d45fedcc03dce97c88ff99945ba9f7f
Author: chao an <an...@xiaomi.com>
AuthorDate: Sun Nov 27 03:11:22 2022 +0800
net/arp: add link layer check for arp_out/arp_ipin
ARP support is only built if the Ethernet link layer is supported.
Continue and send the ARP request only if this device uses the
Ethernet link layer protocol.
Signed-off-by: chao an <an...@xiaomi.com>
---
net/arp/arp_ipin.c | 11 +++++++++++
net/arp/arp_out.c | 11 +++++++++++
2 files changed, 22 insertions(+)
diff --git a/net/arp/arp_ipin.c b/net/arp/arp_ipin.c
index 893f80327a..8803301e28 100644
--- a/net/arp/arp_ipin.c
+++ b/net/arp/arp_ipin.c
@@ -76,6 +76,17 @@ void arp_ipin(FAR struct net_driver_s *dev)
{
in_addr_t srcipaddr;
+ /* ARP support is only built if the Ethernet link layer is supported.
+ * Continue and send the ARP request only if this device uses the
+ * Ethernet link layer protocol.
+ */
+
+ if (dev->d_lltype != NET_LL_ETHERNET &&
+ dev->d_lltype != NET_LL_IEEE80211)
+ {
+ return;
+ }
+
/* Only insert/update an entry if the source IP address of the incoming IP
* packet comes from a host on the local network.
*/
diff --git a/net/arp/arp_out.c b/net/arp/arp_out.c
index a6dba47420..cf4b57b465 100644
--- a/net/arp/arp_out.c
+++ b/net/arp/arp_out.c
@@ -137,6 +137,17 @@ void arp_out(FAR struct net_driver_s *dev)
in_addr_t destipaddr;
int ret;
+ /* ARP support is only built if the Ethernet link layer is supported.
+ * Continue and send the ARP request only if this device uses the
+ * Ethernet link layer protocol.
+ */
+
+ if (dev->d_lltype != NET_LL_ETHERNET &&
+ dev->d_lltype != NET_LL_IEEE80211)
+ {
+ return;
+ }
+
#if defined(CONFIG_NET_PKT) || defined(CONFIG_NET_ARP_SEND)
/* Skip sending ARP requests when the frame to be transmitted was
* written into a packet socket.