aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorGeorge V. Neville-Neil <gnn@FreeBSD.org>2011-05-03 15:58:24 +0000
committerGeorge V. Neville-Neil <gnn@FreeBSD.org>2011-05-03 15:58:24 +0000
commit040b46f5ba1fb23f633535985be51c39ac0c876e (patch)
treed27b8d52adb056dc5cc1bee48ae554ef6c64123b /sys/dev
parente3888a982033e5db7f2843654f81bee47641c26e (diff)
downloadsrc-040b46f5ba1fb23f633535985be51c39ac0c876e.tar.gz
src-040b46f5ba1fb23f633535985be51c39ac0c876e.zip
Add in support for multicast.
Submitted by: Sriram Rapuru at @ Wipro for Exar Inc. MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=221389
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/vxge/include/build-version.h2
-rw-r--r--sys/dev/vxge/vxge.c23
-rw-r--r--sys/dev/vxge/vxge.h1
3 files changed, 4 insertions, 22 deletions
diff --git a/sys/dev/vxge/include/build-version.h b/sys/dev/vxge/include/build-version.h
index 9eca7b2a673f..5bc550ada8b3 100644
--- a/sys/dev/vxge/include/build-version.h
+++ b/sys/dev/vxge/include/build-version.h
@@ -3,5 +3,5 @@
#ifndef BUILD_VERSION_H
#define BUILD_VERSION_H
/* Do not edit! Automatically generated when released. */
-#define GENERATED_BUILD_VERSION 22708
+#define GENERATED_BUILD_VERSION 22770
#endif /* BUILD_VERSION_H */
diff --git a/sys/dev/vxge/vxge.c b/sys/dev/vxge/vxge.c
index 05bbbb855a63..94ca609cb69b 100644
--- a/sys/dev/vxge/vxge.c
+++ b/sys/dev/vxge/vxge.c
@@ -357,6 +357,9 @@ vxge_init_locked(vxge_dev_t *vdev)
if (!vpath_handle)
continue;
+ /* Enabling mcast for all vpath */
+ vxge_hal_vpath_mcast_enable(vpath_handle);
+
/* Enabling bcast for all vpath */
status = vxge_hal_vpath_bcast_enable(vpath_handle);
if (status != VXGE_HAL_OK)
@@ -2879,26 +2882,6 @@ vxge_promisc_set(vxge_dev_t *vdev)
ifp = vdev->ifp;
- if ((ifp->if_flags & IFF_ALLMULTI) && (!vdev->all_multi_flag)) {
- for (i = 0; i < vdev->no_of_vpath; i++) {
- vpath_handle = vxge_vpath_handle_get(vdev, i);
- if (!vpath_handle)
- continue;
-
- vxge_hal_vpath_mcast_enable(vpath_handle);
- vdev->all_multi_flag = 1;
- }
-
- } else if (!(ifp->if_flags & IFF_ALLMULTI) && (vdev->all_multi_flag)) {
- for (i = 0; i < vdev->no_of_vpath; i++) {
- vpath_handle = vxge_vpath_handle_get(vdev, i);
- if (!vpath_handle)
- continue;
-
- vxge_hal_vpath_mcast_disable(vpath_handle);
- vdev->all_multi_flag = 0;
- }
- }
for (i = 0; i < vdev->no_of_vpath; i++) {
vpath_handle = vxge_vpath_handle_get(vdev, i);
if (!vpath_handle)
diff --git a/sys/dev/vxge/vxge.h b/sys/dev/vxge/vxge.h
index 630bbefed54d..439c1ced443f 100644
--- a/sys/dev/vxge/vxge.h
+++ b/sys/dev/vxge/vxge.h
@@ -406,7 +406,6 @@ struct vxge_dev_t {
int no_of_vpath;
u64 active_port;
u32 no_of_func;
- u32 all_multi_flag;
u32 hw_fw_version;
u32 max_supported_vpath;
int rx_mbuf_sz;