summaryrefslogtreecommitdiffstats
path: root/src/drivers/net/ipoib.c
diff options
context:
space:
mode:
authorMichael Brown2008-10-15 03:00:44 +0200
committerMichael Brown2008-10-16 06:12:56 +0200
commit6b9cc2555688e716387c02ecfe4569d2a73a7208 (patch)
tree74e96e3ee8ad06e20fe550456033e42a52ae6baf /src/drivers/net/ipoib.c
parent[netdevice] Add maximum packet length as a net device property (diff)
downloadipxe-6b9cc2555688e716387c02ecfe4569d2a73a7208.tar.gz
ipxe-6b9cc2555688e716387c02ecfe4569d2a73a7208.tar.xz
ipxe-6b9cc2555688e716387c02ecfe4569d2a73a7208.zip
[netdevice] Split multicast hashing out into an mc_hash method
Multicast hashing is an ugly overlap between network and link layers. EFI requires us to provide access to this functionality, so move it out of ipv4.c and expose it as a method of the link layer.
Diffstat (limited to 'src/drivers/net/ipoib.c')
-rw-r--r--src/drivers/net/ipoib.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/drivers/net/ipoib.c b/src/drivers/net/ipoib.c
index 9c9bc918..47090bb2 100644
--- a/src/drivers/net/ipoib.c
+++ b/src/drivers/net/ipoib.c
@@ -222,6 +222,21 @@ const char * ipoib_ntoa ( const void *ll_addr ) {
return buf;
}
+/**
+ * Hash multicast address
+ *
+ * @v af Address family
+ * @v net_addr Network-layer address
+ * @v ll_addr Link-layer address to fill in
+ * @ret rc Return status code
+ */
+static int ipoib_mc_hash ( unsigned int af __unused,
+ const void *net_addr __unused,
+ void *ll_addr __unused ) {
+
+ return -ENOTSUP;
+}
+
/** IPoIB protocol */
struct ll_protocol ipoib_protocol __ll_protocol = {
.name = "IPoIB",
@@ -232,6 +247,7 @@ struct ll_protocol ipoib_protocol __ll_protocol = {
.push = ipoib_push,
.pull = ipoib_pull,
.ntoa = ipoib_ntoa,
+ .mc_hash = ipoib_mc_hash,
};
/****************************************************************************