summaryrefslogtreecommitdiff
path: root/include/net6.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net6.h')
-rw-r--r--include/net6.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/include/net6.h b/include/net6.h
index 622885e7df8..9b3de028e6d 100644
--- a/include/net6.h
+++ b/include/net6.h
@@ -172,6 +172,7 @@ extern struct in6_addr net_ip6; /* Our IPv6 addr (0 = unknown) */
extern struct in6_addr net_link_local_ip6; /* Our link local IPv6 addr */
extern u32 net_prefix_length; /* Our prefixlength (0 = unknown) */
extern struct in6_addr net_server_ip6; /* Server IPv6 addr (0 = unknown) */
+extern struct in6_addr net_ping_ip6; /* the ipv6 address to ping */
extern bool use_ip6;
#if IS_ENABLED(CONFIG_IPV6)
@@ -403,4 +404,29 @@ static inline void net_copy_ip6(void *to, const void *from)
}
#endif
+#if IS_ENABLED(CONFIG_CMD_PING6)
+/* Send ping requset */
+void ping6_start(void);
+
+/**
+ * ping6_receive() - Handle reception of ICMPv6 echo request/reply
+ *
+ * @et: pointer to incoming patcket
+ * @ip6: pointer to IPv6 protocol
+ * @len: packet length
+ * Return: 0 if success, -EINVAL in case of failure during reception
+ */
+int ping6_receive(struct ethernet_hdr *et, struct ip6_hdr *ip6, int len);
+#else
+static inline void ping6_start(void)
+{
+}
+
+static inline
+int ping6_receive(struct ethernet_hdr *et, struct ip6_hdr *ip6, int len)
+{
+ return -EINVAL;
+}
+#endif /* CONFIG_CMD_PING6 */
+
#endif /* __NET6_H__ */