summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorMichael Brown2013-10-21 15:17:47 +0200
committerMichael Brown2013-10-21 16:08:18 +0200
commitc597c7a071f6dd42233b53012133e861e794c9c8 (patch)
treea2f56bff15790784b577d71a0e10db694cf76f16 /src/include
parent[ping] Add concept of a ping socket (diff)
downloadipxe-c597c7a071f6dd42233b53012133e861e794c9c8.tar.gz
ipxe-c597c7a071f6dd42233b53012133e861e794c9c8.tar.xz
ipxe-c597c7a071f6dd42233b53012133e861e794c9c8.zip
[ping] Add generic ping mechanism
Add generic pinger mechanism (analogous to the generic downloader mechanism) which opens a ping socket, transmits ping requests, and passes information about ping replies to a callback function. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/ipxe/errfile.h1
-rw-r--r--src/include/ipxe/pinger.h23
2 files changed, 24 insertions, 0 deletions
diff --git a/src/include/ipxe/errfile.h b/src/include/ipxe/errfile.h
index ad88e91f8..1db94466a 100644
--- a/src/include/ipxe/errfile.h
+++ b/src/include/ipxe/errfile.h
@@ -64,6 +64,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#define ERRFILE_xferbuf ( ERRFILE_CORE | 0x00180000 )
#define ERRFILE_pending ( ERRFILE_CORE | 0x00190000 )
#define ERRFILE_null_reboot ( ERRFILE_CORE | 0x001a0000 )
+#define ERRFILE_pinger ( ERRFILE_CORE | 0x001b0000 )
#define ERRFILE_eisa ( ERRFILE_DRIVER | 0x00000000 )
#define ERRFILE_isa ( ERRFILE_DRIVER | 0x00010000 )
diff --git a/src/include/ipxe/pinger.h b/src/include/ipxe/pinger.h
new file mode 100644
index 000000000..2d8403313
--- /dev/null
+++ b/src/include/ipxe/pinger.h
@@ -0,0 +1,23 @@
+#ifndef _IPXE_PINGER_H
+#define _IPXE_PINGER_H
+
+/** @file
+ *
+ * ICMP ping sender
+ *
+ */
+
+FILE_LICENCE ( GPL2_OR_LATER );
+
+#include <stdint.h>
+#include <ipxe/interface.h>
+#include <ipxe/socket.h>
+
+extern int create_pinger ( struct interface *job, const char *hostname,
+ unsigned long timeout, size_t len,
+ void ( * callback ) ( struct sockaddr *peer,
+ unsigned int sequence,
+ size_t len,
+ int rc ) );
+
+#endif /* _IPXE_PINGER_H */