summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/mvme3100/network/if_tsec_pub.h
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2009-06-06 00:49:41 +0000
committerTill Straumann <strauman@slac.stanford.edu>2009-06-06 00:49:41 +0000
commit5cb7096bde2bf7c1de5f58af0d9265da61d8ad22 (patch)
tree019bb4eee5204ccf11bde284b38f9d1f91237251 /c/src/lib/libbsp/powerpc/mvme3100/network/if_tsec_pub.h
parent2009-06-05 Santosh G Vattam <vattam.santosh@gmail.com> (diff)
downloadrtems-5cb7096bde2bf7c1de5f58af0d9265da61d8ad22.tar.bz2
2009-06-05 Till Straumann <strauman@slac.stanford.edu>
* network/tsec.c, network/if_tsec_pub.h: implemented multicast support.
Diffstat (limited to '')
-rw-r--r--c/src/lib/libbsp/powerpc/mvme3100/network/if_tsec_pub.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/mvme3100/network/if_tsec_pub.h b/c/src/lib/libbsp/powerpc/mvme3100/network/if_tsec_pub.h
index da3f2bc1a7..0a7760d0c1 100644
--- a/c/src/lib/libbsp/powerpc/mvme3100/network/if_tsec_pub.h
+++ b/c/src/lib/libbsp/powerpc/mvme3100/network/if_tsec_pub.h
@@ -173,11 +173,45 @@ BSP_tsec_reset_stats(struct tsec_private *mp);
* 'promisc' whether to set promiscuous flag.
* 'enaddr' pointer to six bytes with MAC address. Read
* from the device if NULL.
+ * NOTE: multicast filter is cleared by this routine.
*/
void
BSP_tsec_init_hw(struct tsec_private *mp, int promisc, unsigned char *enaddr);
/*
+ * Clear multicast hash filter. No multicast frames are accepted
+ * after executing this routine (unless the hardware was initialized
+ * in 'promiscuous' mode).
+ */
+void
+BSP_tsec_mcast_filter_clear(struct tsec_private *mp);
+
+/*
+ * Program multicast filter to accept all multicast frames.
+ */
+void
+BSP_tsec_mcast_filter_accept_all(struct tsec_private *mp);
+
+/*
+ * Add a MAC address to the multicast filter.
+ * Existing entries are not changed but note that
+ * the filter is imperfect, i.e., multiple MAC addresses
+ * may alias to a single filter entry. Hence software
+ * filtering must still be performed.
+ *
+ * NOTE: Deletion of an address is not possible. This is
+ * usually accomplished by a higher-level driver
+ * maintaining a list/database of multicast addresses
+ * and going through a sequence:
+ *
+ * BSP_tsec_mcast_filter_clear()
+ * forall mcast addresses do
+ * BSP_tsec_mcast_filter_accept_add()
+ */
+void
+BSP_tsec_mcast_filter_accept_add(struct tsec_private *mp, unsigned char *enaddr);
+
+/*
* Dump statistics to FILE 'f'. If NULL, stdout is used.
*/
void