summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2004-03-07 23:00:44 +0000
committerru <ru@FreeBSD.org>2004-03-07 23:00:44 +0000
commitbf23ea37e6288cf0227dab4c910f8cde345cd140 (patch)
treea8def910e7ab0c280b72a24183328b78ed465d00 /sys
parent41b17057eff98a603cc4f9dea224f7081ca9fbb4 (diff)
downloadFreeBSD-src-bf23ea37e6288cf0227dab4c910f8cde345cd140.zip
FreeBSD-src-bf23ea37e6288cf0227dab4c910f8cde345cd140.tar.gz
Implemented the "getifindex" control message.
PR: kern/63864 Submitted by: Gleb Smirnoff
Diffstat (limited to 'sys')
-rw-r--r--sys/netgraph/ng_iface.c16
-rw-r--r--sys/netgraph/ng_iface.h1
2 files changed, 17 insertions, 0 deletions
diff --git a/sys/netgraph/ng_iface.c b/sys/netgraph/ng_iface.c
index 430e0e6..38845fc 100644
--- a/sys/netgraph/ng_iface.c
+++ b/sys/netgraph/ng_iface.c
@@ -186,6 +186,13 @@ static const struct ng_cmdlist ng_iface_cmds[] = {
NULL,
&ng_cisco_ipaddr_type
},
+ {
+ NGM_IFACE_COOKIE,
+ NGM_IFACE_GET_IFINDEX,
+ "getifindex",
+ NULL,
+ &ng_parse_uint32_type
+ },
{ 0 }
};
@@ -667,6 +674,15 @@ ng_iface_rcvmsg(node_p node, item_p item, hook_p lasthook)
break;
}
+ case NGM_IFACE_GET_IFINDEX:
+ NG_MKRESPONSE(resp, msg, sizeof(uint32_t), M_NOWAIT);
+ if (resp == NULL) {
+ error = ENOMEM;
+ break;
+ }
+ *((uint32_t *)resp->data) = priv->ifp->if_index;
+ break;
+
default:
error = EINVAL;
break;
diff --git a/sys/netgraph/ng_iface.h b/sys/netgraph/ng_iface.h
index 98b9c7c..6c3bbbc 100644
--- a/sys/netgraph/ng_iface.h
+++ b/sys/netgraph/ng_iface.h
@@ -69,6 +69,7 @@ enum {
NGM_IFACE_GET_IFNAME = 1, /* returns struct ng_iface_ifname */
NGM_IFACE_POINT2POINT,
NGM_IFACE_BROADCAST,
+ NGM_IFACE_GET_IFINDEX,
};
struct ng_iface_ifname {
OpenPOWER on IntegriCloud