patch-2.1.30 linux/include/linux/mroute.h
Next file: linux/include/linux/net.h
Previous file: linux/include/linux/ipv6_route.h
Back to the patch index
Back to the overall index
- Lines: 88
- Date:
Wed Mar 26 11:01:28 1997
- Orig file:
v2.1.29/linux/include/linux/mroute.h
- Orig date:
Thu Feb 6 02:59:50 1997
diff -u --recursive --new-file v2.1.29/linux/include/linux/mroute.h linux/include/linux/mroute.h
@@ -21,9 +21,11 @@
#define MRT_DEL_MFC (MRT_BASE+5) /* Delete a multicast forwarding entry */
#define MRT_VERSION (MRT_BASE+6) /* Get the kernel multicast version */
#define MRT_ASSERT (MRT_BASE+7) /* Activate PIM assert mode */
+#define MRT_PIM (MRT_BASE+8) /* enable PIM code */
#define SIOCGETVIFCNT SIOCPROTOPRIVATE /* IP protocol privates */
#define SIOCGETSGCNT (SIOCPROTOPRIVATE+1)
+#define SIOCGETRPF (SIOCPROTOPRIVATE+2)
#define MAXVIFS 32
typedef unsigned long vifbitmap_t; /* User mode code depends on this lot */
@@ -56,10 +58,18 @@
};
#define VIFF_TUNNEL 0x1 /* IPIP tunnel */
-#define VIFF_SRCRT 0x02 /* NI */
+#define VIFF_SRCRT 0x2 /* NI */
+
+
+/* PIM Vif Flags */
+#define VIFF_DR 0x0010 /* designated router */
+#define VIFF_NOMRT 0x0020 /* no neighbor on vif */
+#define VIFF_DOWN 0x0040 /* interface is down */
+#define VIFF_DISABLED 0x0080 /* disabled interafce */
+#define VIFF_REGISTER 0x00A0 /* MIssing cap@di.fc.ul.pt */
/*
- * Cache manipulation structures for mrouted
+ * Cache manipulation structures for mrouted and PIMd
*/
struct mfcctl
@@ -68,6 +78,10 @@
struct in_addr mfcc_mcastgrp; /* Group in question */
vifi_t mfcc_parent; /* Where it arrived */
unsigned char mfcc_ttls[MAXVIFS]; /* Where it is going */
+ unsigned int mfcc_pkt_cnt; /* pkt count for src-grp */
+ unsigned int mfcc_byte_cnt;
+ unsigned int mfcc_wrong_if;
+ int mfcc_expire;
};
/*
@@ -97,6 +111,16 @@
};
/*
+ * To get RPF from unicast routing table (PIM: cap@di.fc.ul.pt)
+ */
+struct sioc_rpf_req
+{
+ unsigned long source; /* Source address */
+ unsigned long rpfneighbor; /* RPF */
+ vifi_t iif; /* Incoming Interface */
+};
+
+/*
* This is the format the mroute daemon expects to see IGMP control
* data. Magically happens to be like an IP packet as per the original
*/
@@ -138,6 +162,7 @@
unsigned char threshold; /* TTL threshold */
unsigned short flags; /* Control flags */
unsigned long local,remote; /* Addresses(remote for tunnels)*/
+ unsigned long uptime;
};
struct mfc_cache
@@ -153,6 +178,8 @@
unsigned mfc_last_assert;
int mfc_minvif;
int mfc_maxvif;
+ unsigned long uptime;
+ unsigned long expire;
unsigned long mfc_bytes;
unsigned long mfc_pkt;
unsigned long mfc_wrong_if;
@@ -180,7 +207,8 @@
* Pseudo messages used by mrouted
*/
-#define IGMPMSG_NOCACHE 1 /* Kernel cache fill request to mrouted */
+#define IGMPMSG_NOCACHE 1 /* Kern cache fill request to mrouted */
#define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */
+#define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */
#endif
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov