summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorShirley Ma <mashirle@us.ibm.com>2004-01-14 08:58:20 -0800
committerDavid S. Miller <davem@nuts.ninka.net>2004-01-14 08:58:20 -0800
commit3c1ea2a57f835a46d08b20d72b2c3c8bc4e9c2a0 (patch)
tree4540b37712743d4bcfb4a471a5e24aaf85c57589 /include
parent395950f89abd00f391b2adde7e0e7db8eeb17feb (diff)
[IPV6]: Implement MIB:ipv6InterfaceTable
Diffstat (limited to 'include')
-rw-r--r--include/linux/rtnetlink.h12
-rw-r--r--include/net/if_inet6.h1
-rw-r--r--include/net/ndisc.h11
-rw-r--r--include/net/neighbour.h10
4 files changed, 31 insertions, 3 deletions
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index 4a26f207b5d7..db1966e24462 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -558,9 +558,18 @@ enum
IFLA_INET6_CONF, /* sysctl parameters */
IFLA_INET6_STATS, /* statistics */
IFLA_INET6_MCAST, /* MC things. What of them? */
+ IFLA_INET6_CACHEINFO, /* time values and max reasm size */
};
-#define IFLA_INET6_MAX IFLA_INET6_MCAST
+struct ifla_cacheinfo
+{
+ __u32 max_reasm_len;
+ __u32 tstamp; /* ipv6InterfaceTable updated timestamp */
+ __u32 reachable_time;
+ __u32 retrans_time;
+};
+
+#define IFLA_INET6_MAX IFLA_INET6_CACHEINFO
/*****************************************************************
* Traffic control messages.
@@ -611,6 +620,7 @@ enum
#define RTMGRP_IPV6_IFADDR 0x100
#define RTMGRP_IPV6_MROUTE 0x200
#define RTMGRP_IPV6_ROUTE 0x400
+#define RTMGRP_IPV6_IFINFO 0x800
#define RTMGRP_DECnet_IFADDR 0x1000
#define RTMGRP_DECnet_ROUTE 0x4000
diff --git a/include/net/if_inet6.h b/include/net/if_inet6.h
index 6dd6ebda5e6f..4ef8526494d2 100644
--- a/include/net/if_inet6.h
+++ b/include/net/if_inet6.h
@@ -183,6 +183,7 @@ struct inet6_dev
struct inet6_dev *next;
struct ipv6_devconf cnf;
struct ipv6_devstat stats;
+ unsigned long tstamp; /* ipv6InterfaceTable update timestamp */
};
extern struct ipv6_devconf ipv6_devconf;
diff --git a/include/net/ndisc.h b/include/net/ndisc.h
index d364fc636912..95684d3363c1 100644
--- a/include/net/ndisc.h
+++ b/include/net/ndisc.h
@@ -98,6 +98,17 @@ extern int igmp6_event_report(struct sk_buff *skb);
extern void igmp6_cleanup(void);
+#ifdef CONFIG_SYSCTL
+extern int ndisc_ifinfo_sysctl_change(ctl_table *ctl,
+ int write,
+ struct file * filp,
+ void __user *buffer,
+ size_t *lenp);
+#endif
+
+extern void inet6_ifinfo_notify(int event,
+ struct inet6_dev *idev);
+
static inline struct neighbour * ndisc_get_neigh(struct net_device *dev, struct in6_addr *addr)
{
diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index 24bee28fd7fb..e016389694a8 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -47,6 +47,9 @@
#include <linux/skbuff.h>
#include <linux/err.h>
+#ifdef CONFIG_SYSCTL
+#include <linux/sysctl.h>
+#endif
#define NUD_IN_TIMER (NUD_INCOMPLETE|NUD_DELAY|NUD_PROBE)
#define NUD_VALID (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE|NUD_PROBE|NUD_STALE|NUD_DELAY)
@@ -206,8 +209,11 @@ extern int neigh_add(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg);
extern int neigh_delete(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg);
extern void neigh_app_ns(struct neighbour *n);
-extern int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p,
- int p_id, int pdev_id, char *p_name);
+extern int neigh_sysctl_register(struct net_device *dev,
+ struct neigh_parms *p,
+ int p_id, int pdev_id,
+ char *p_name,
+ proc_handler *proc_handler);
extern void neigh_sysctl_unregister(struct neigh_parms *p);
/*