Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148149783
D8049.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D8049.diff
View Options
Index: head/sys/dev/hyperv/netvsc/hv_net_vsc.h
===================================================================
--- head/sys/dev/hyperv/netvsc/hv_net_vsc.h
+++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h
@@ -265,7 +265,6 @@
/*
* Externs
*/
-extern int hv_promisc_mode;
struct hn_send_ctx;
void netvsc_linkstatus_callback(struct hn_softc *sc, uint32_t status);
Index: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
===================================================================
--- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
+++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
@@ -205,8 +205,6 @@
* Globals
*/
-int hv_promisc_mode = 0; /* normal mode by default */
-
SYSCTL_NODE(_hw, OID_AUTO, hn, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL,
"Hyper-V network interface");
@@ -1779,7 +1777,7 @@
hn_stop(struct hn_softc *sc)
{
struct ifnet *ifp;
- int ret, i;
+ int i;
HN_LOCK_ASSERT(sc);
@@ -1795,7 +1793,8 @@
if_link_state_change(ifp, LINK_STATE_DOWN);
- ret = hv_rf_on_close(sc);
+ /* Disable RX by clearing RX filter. */
+ hn_rndis_set_rxfilter(sc, 0);
}
/*
@@ -1870,9 +1869,8 @@
return;
}
- hv_promisc_mode = 1;
-
- ret = hv_rf_on_open(sc);
+ /* TODO: add hn_rx_filter */
+ ret = hn_rndis_set_rxfilter(sc, NDIS_PACKET_TYPE_PROMISCUOUS);
if (ret != 0)
return;
@@ -3576,9 +3574,9 @@
}
/*
- * Disable RX.
+ * Disable RX by clearing RX filter.
*/
- hv_rf_on_close(sc);
+ hn_rndis_set_rxfilter(sc, 0);
/*
* Give RNDIS enough time to flush all pending data packets.
@@ -3612,8 +3610,9 @@
/*
* Re-enable RX.
+ * TODO: add hn_rx_filter.
*/
- hv_rf_on_open(sc);
+ hn_rndis_set_rxfilter(sc, NDIS_PACKET_TYPE_PROMISCUOUS);
/*
* Make sure to clear suspend status on "all" TX rings,
Index: head/sys/dev/hyperv/netvsc/hv_rndis_filter.h
===================================================================
--- head/sys/dev/hyperv/netvsc/hv_rndis_filter.h
+++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.h
@@ -43,8 +43,6 @@
void hv_rf_on_receive(struct hn_softc *sc, struct hn_rx_ring *rxr,
const void *data, int dlen);
void hv_rf_channel_rollup(struct hn_rx_ring *rxr, struct hn_tx_ring *txr);
-int hv_rf_on_open(struct hn_softc *sc);
-int hv_rf_on_close(struct hn_softc *sc);
#endif /* __HV_RNDIS_FILTER_H__ */
Index: head/sys/dev/hyperv/netvsc/hv_rndis_filter.c
===================================================================
--- head/sys/dev/hyperv/netvsc/hv_rndis_filter.c
+++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.c
@@ -887,7 +887,7 @@
return (error);
}
-static int
+int
hn_rndis_set_rxfilter(struct hn_softc *sc, uint32_t filter)
{
int error;
@@ -1013,35 +1013,6 @@
hn_rndis_halt(sc);
}
-/*
- * RNDIS filter on open
- */
-int
-hv_rf_on_open(struct hn_softc *sc)
-{
- uint32_t filter;
-
- /* XXX */
- if (hv_promisc_mode != 1) {
- filter = NDIS_PACKET_TYPE_BROADCAST |
- NDIS_PACKET_TYPE_ALL_MULTICAST |
- NDIS_PACKET_TYPE_DIRECTED;
- } else {
- filter = NDIS_PACKET_TYPE_PROMISCUOUS;
- }
- return (hn_rndis_set_rxfilter(sc, filter));
-}
-
-/*
- * RNDIS filter on close
- */
-int
-hv_rf_on_close(struct hn_softc *sc)
-{
-
- return (hn_rndis_set_rxfilter(sc, 0));
-}
-
void
hv_rf_channel_rollup(struct hn_rx_ring *rxr, struct hn_tx_ring *txr)
{
Index: head/sys/dev/hyperv/netvsc/if_hnvar.h
===================================================================
--- head/sys/dev/hyperv/netvsc/if_hnvar.h
+++ head/sys/dev/hyperv/netvsc/if_hnvar.h
@@ -126,6 +126,8 @@
int hn_rndis_get_eaddr(struct hn_softc *sc, uint8_t *eaddr);
int hn_rndis_get_linkstatus(struct hn_softc *sc,
uint32_t *link_status);
+/* filter: NDIS_PACKET_TYPE_ or 0. */
+int hn_rndis_set_rxfilter(struct hn_softc *sc, uint32_t filter);
int hn_nvs_attach(struct hn_softc *sc, int mtu);
void hn_nvs_detach(struct hn_softc *sc);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Mar 17, 2:22 AM (44 m, 57 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29803406
Default Alt Text
D8049.diff (3 KB)
Attached To
Mode
D8049: hyperv/hn: Flatten RX filter configuration.
Attached
Detach File
Event Timeline
Log In to Comment