diff options
| author | Shirley Ma <mashirle@us.ibm.com> | 2004-01-14 08:58:20 -0800 |
|---|---|---|
| committer | David S. Miller <davem@nuts.ninka.net> | 2004-01-14 08:58:20 -0800 |
| commit | 3c1ea2a57f835a46d08b20d72b2c3c8bc4e9c2a0 (patch) | |
| tree | 4540b37712743d4bcfb4a471a5e24aaf85c57589 /include | |
| parent | 395950f89abd00f391b2adde7e0e7db8eeb17feb (diff) | |
[IPV6]: Implement MIB:ipv6InterfaceTable
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/rtnetlink.h | 12 | ||||
| -rw-r--r-- | include/net/if_inet6.h | 1 | ||||
| -rw-r--r-- | include/net/ndisc.h | 11 | ||||
| -rw-r--r-- | include/net/neighbour.h | 10 |
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); /* |
