svn commit: r277065 - in projects/ifnet/sys: dev/virtio/network net netinet netinet6
Gleb Smirnoff
glebius at FreeBSD.org
Mon Jan 12 11:25:09 UTC 2015
Author: glebius
Date: Mon Jan 12 11:25:04 2015
New Revision: 277065
URL: https://svnweb.freebsd.org/changeset/base/277065
Log:
- Obsolete if_drv_flags. The IFF_DRV_RUNNING migrates to drivers softc.
The flag IFF_RUNNING originates from ancient times when a) all ifnets
were statically defined in the kernel b) there were no notion of link
state.
Today the IFF_UP is enough to describe administrative state of an
interface, and if_link_state is enough to describe physical state.
- Obsolete if_start. During convertion process all drivers would need
to migrate to if_transmit. A dumb technique of doing that would be
provided.
Modified:
projects/ifnet/sys/dev/virtio/network/if_vtnet.c
projects/ifnet/sys/dev/virtio/network/if_vtnetvar.h
projects/ifnet/sys/net/if.c
projects/ifnet/sys/net/if.h
projects/ifnet/sys/net/if_debug.c
projects/ifnet/sys/net/if_ethersubr.c
projects/ifnet/sys/net/if_loop.c
projects/ifnet/sys/net/if_mib.c
projects/ifnet/sys/net/if_var.h
projects/ifnet/sys/net/ifq.h
projects/ifnet/sys/net/rtsock.c
projects/ifnet/sys/netinet/ip_fastfwd.c
projects/ifnet/sys/netinet6/in6.c
projects/ifnet/sys/netinet6/nd6_nbr.c
Modified: projects/ifnet/sys/dev/virtio/network/if_vtnet.c
==============================================================================
--- projects/ifnet/sys/dev/virtio/network/if_vtnet.c Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/dev/virtio/network/if_vtnet.c Mon Jan 12 11:25:04 2015 (r277065)
@@ -1004,8 +1004,8 @@ vtnet_change_mtu(struct vtnet_softc *sc,
if_setflags(ifp, IF_MTU, new_mtu);
sc->vtnet_rx_new_clsize = clsize;
- if (if_getflags(ifp, IF_DRV_FLAGS) & IFF_DRV_RUNNING) {
- if_clrflags(ifp, IF_DRV_FLAGS, IFF_DRV_RUNNING);
+ if (sc->vtnet_flags & VTNET_FLAG_RUNNING) {
+ sc->vtnet_flags &= ~VTNET_FLAG_RUNNING;
vtnet_init_locked(sc);
}
@@ -1035,9 +1035,9 @@ vtnet_ioctl(if_t ifp, u_long cmd, caddr_
case SIOCSIFFLAGS:
VTNET_CORE_LOCK(sc);
if ((if_getflags(ifp, IF_FLAGS) & IFF_UP) == 0) {
- if (if_getflags(ifp, IF_DRV_FLAGS) & IFF_DRV_RUNNING)
+ if (sc->vtnet_flags & VTNET_FLAG_RUNNING)
vtnet_stop(sc);
- } else if (if_getflags(ifp, IF_DRV_FLAGS) & IFF_DRV_RUNNING) {
+ } else if (sc->vtnet_flags & VTNET_FLAG_RUNNING) {
if ((if_getflags(ifp, IF_FLAGS) ^ sc->vtnet_if_flags) &
(IFF_PROMISC | IFF_ALLMULTI)) {
if (sc->vtnet_flags & VTNET_FLAG_CTRL_RX)
@@ -1058,7 +1058,7 @@ vtnet_ioctl(if_t ifp, u_long cmd, caddr_
if ((sc->vtnet_flags & VTNET_FLAG_CTRL_RX) == 0)
break;
VTNET_CORE_LOCK(sc);
- if (if_getflags(ifp, IF_DRV_FLAGS) & IFF_DRV_RUNNING)
+ if (sc->vtnet_flags & VTNET_FLAG_RUNNING)
vtnet_rx_filter_mac(sc);
VTNET_CORE_UNLOCK(sc);
break;
@@ -1103,9 +1103,8 @@ vtnet_ioctl(if_t ifp, u_long cmd, caddr_
if (mask & IFCAP_VLAN_HWTAGGING)
capenable ^= IFCAP_VLAN_HWTAGGING;
- if (reinit &&
- (if_getflags(ifp, IF_DRV_FLAGS) & IFF_DRV_RUNNING)) {
- if_clrflags(ifp, IF_DRV_FLAGS, IFF_DRV_RUNNING);
+ if (reinit && (sc->vtnet_flags & VTNET_FLAG_RUNNING)) {
+ sc->vtnet_flags &= ~VTNET_FLAG_RUNNING;
vtnet_init_locked(sc);
}
@@ -1776,7 +1775,7 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq)
vtnet_rxq_input(rxq, m, hdr);
/* Must recheck after dropping the Rx lock. */
- if ((if_getflags(ifp, IF_DRV_FLAGS) & IFF_DRV_RUNNING) == 0)
+ if ((sc->vtnet_flags & VTNET_FLAG_RUNNING) == 0)
break;
}
@@ -1813,7 +1812,7 @@ vtnet_rx_vq_intr(void *xrxq)
VTNET_RXQ_LOCK(rxq);
again:
- if ((if_getflags(ifp, IF_DRV_FLAGS) & IFF_DRV_RUNNING) == 0) {
+ if ((sc->vtnet_flags & VTNET_FLAG_RUNNING) == 0) {
VTNET_RXQ_UNLOCK(rxq);
return;
}
@@ -1850,7 +1849,7 @@ vtnet_rxq_tq_intr(void *xrxq, int pendin
VTNET_RXQ_LOCK(rxq);
- if ((if_getflags(ifp, IF_DRV_FLAGS) & IFF_DRV_RUNNING) == 0) {
+ if ((sc->vtnet_flags & VTNET_FLAG_RUNNING) == 0) {
VTNET_RXQ_UNLOCK(rxq);
return;
}
@@ -2188,7 +2187,7 @@ vtnet_txq_mq_start_locked(struct vtnet_t
VTNET_TXQ_LOCK_ASSERT(txq);
- if ((if_getflags(ifp, IF_DRV_FLAGS) & IFF_DRV_RUNNING) == 0 ||
+ if ((sc->vtnet_flags & VTNET_FLAG_RUNNING) == 0 ||
sc->vtnet_link_active == 0) {
if (m != NULL)
error = buf_ring_enqueue(br, m);
@@ -2304,7 +2303,7 @@ vtnet_txq_tq_intr(void *xtxq, int pendin
VTNET_TXQ_LOCK(txq);
- if ((if_getflags(ifp, IF_DRV_FLAGS) & IFF_DRV_RUNNING) == 0) {
+ if ((sc->vtnet_flags & VTNET_FLAG_RUNNING) == 0) {
VTNET_TXQ_UNLOCK(txq);
return;
}
@@ -2377,7 +2376,7 @@ vtnet_tx_vq_intr(void *xtxq)
VTNET_TXQ_LOCK(txq);
- if ((if_getflags(ifp, IF_DRV_FLAGS) & IFF_DRV_RUNNING) == 0) {
+ if ((sc->vtnet_flags & VTNET_FLAG_RUNNING) == 0) {
VTNET_TXQ_UNLOCK(txq);
return;
}
@@ -2530,7 +2529,7 @@ vtnet_tick(void *xsc)
timedout |= vtnet_watchdog(&sc->vtnet_txqs[i]);
if (timedout != 0) {
- if_clrflags(ifp, IF_DRV_FLAGS, IFF_DRV_RUNNING);
+ sc->vtnet_flags &= ~VTNET_FLAG_RUNNING;
vtnet_init_locked(sc);
} else
callout_schedule(&sc->vtnet_tick_ch, hz);
@@ -2667,7 +2666,7 @@ vtnet_stop(struct vtnet_softc *sc)
VTNET_CORE_LOCK_ASSERT(sc);
- if_clrflags(ifp, IF_DRV_FLAGS, IFF_DRV_RUNNING);
+ sc->vtnet_flags &= ~VTNET_FLAG_RUNNING;
sc->vtnet_link_active = 0;
callout_stop(&sc->vtnet_tick_ch);
@@ -2902,7 +2901,7 @@ vtnet_reinit(struct vtnet_softc *sc)
return (error);
vtnet_enable_interrupts(sc);
- if_addflags(ifp, IF_DRV_FLAGS, IFF_DRV_RUNNING);
+ sc->vtnet_flags |= VTNET_FLAG_RUNNING;
return (0);
}
@@ -2918,7 +2917,7 @@ vtnet_init_locked(struct vtnet_softc *sc
VTNET_CORE_LOCK_ASSERT(sc);
- if (if_getflags(ifp, IF_DRV_FLAGS) & IFF_DRV_RUNNING)
+ if (sc->vtnet_flags & VTNET_FLAG_RUNNING)
return;
vtnet_stop(sc);
Modified: projects/ifnet/sys/dev/virtio/network/if_vtnetvar.h
==============================================================================
--- projects/ifnet/sys/dev/virtio/network/if_vtnetvar.h Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/dev/virtio/network/if_vtnetvar.h Mon Jan 12 11:25:04 2015 (r277065)
@@ -142,6 +142,7 @@ struct vtnet_softc {
#define VTNET_FLAG_MULTIQ 0x0200
#define VTNET_FLAG_INDIRECT 0x0400
#define VTNET_FLAG_EVENT_IDX 0x0800
+#define VTNET_FLAG_RUNNING 0x1000
int vtnet_link_active;
int vtnet_hdr_size;
Modified: projects/ifnet/sys/net/if.c
==============================================================================
--- projects/ifnet/sys/net/if.c Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/net/if.c Mon Jan 12 11:25:04 2015 (r277065)
@@ -162,7 +162,6 @@ static void if_freemulti(struct ifmultia
static void if_grow(void);
static void if_route(struct ifnet *, int flag, int fam);
static int if_setflag(struct ifnet *, int, int, int *, int);
-static int if_transmit_start(struct ifnet *ifp, struct mbuf *m);
static void if_unroute(struct ifnet *, int flag, int fam);
static void link_rtrequest(int, struct rtentry *, struct rt_addrinfo *);
static int if_rtdel(struct radix_node *, void *);
@@ -444,7 +443,6 @@ ifdriver_bless(struct ifdriver *ifdrv, s
COPY(ifop_ioctl);
COPY(ifop_get_counter);
COPY(ifop_init);
- COPY(ifop_start);
COPY(ifop_qflush);
COPY(ifop_resolvemulti);
COPY(ifop_reassign);
@@ -463,10 +461,6 @@ ifdriver_bless(struct ifdriver *ifdrv, s
(ifdrv->ifdrv_ops.ifop_transmit != NULL &&
ifdrv->ifdrv_ops.ifop_qflush != NULL),
("transmit and qflush must both either be set or both be NULL"));
- if (ifdrv->ifdrv_ops.ifop_transmit == NULL) {
- ifdrv->ifdrv_ops.ifop_transmit = if_transmit_start;
- ifdrv->ifdrv_ops.ifop_qflush = if_qflush;
- }
if (ifdrv->ifdrv_ops.ifop_get_counter == NULL)
ifdrv->ifdrv_ops.ifop_get_counter = if_get_counter_default;
@@ -1526,9 +1520,6 @@ if_getfeature(if_t ifp, ift_feature f, u
case IF_FLAGS:
*f32 = &ifp->if_flags;
break;
- case IF_DRV_FLAGS:
- *f32 = &ifp->if_drv_flags;
- break;
case IF_CAPABILITIES:
*f32 = &ifp->if_capabilities;
break;
@@ -2453,7 +2444,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp,
break;
case SIOCGIFFLAGS:
- temp_flags = ifp->if_flags | ifp->if_drv_flags;
+ temp_flags = ifp->if_flags;
ifr->ifr_flags = temp_flags & 0xffff;
ifr->ifr_flagshigh = temp_flags >> 16;
break;
@@ -2974,10 +2965,6 @@ if_setflag(struct ifnet *ifp, int flag,
int error;
int oldflags, oldcount;
- /* Sanity checks to catch programming errors */
- KASSERT((flag & (IFF_DRV_OACTIVE|IFF_DRV_RUNNING)) == 0,
- ("%s: setting driver-owned flag %d", __func__, flag));
-
if (onswitch)
KASSERT(*refcount >= 0,
("%s: increment negative refcount %d for flag %d",
@@ -3653,44 +3640,6 @@ if_printf(struct ifnet *ifp, const char
return (retval);
}
-/*
- * Backwards compatibility interface for drivers
- * that have not implemented if_transmit.
- */
-static int
-if_transmit_start(struct ifnet *ifp, struct mbuf *m)
-{
- int error;
-
- IFQ_HANDOFF(ifp, m, error);
- return (error);
-}
-
-int
-if_handoff(struct ifqueue *ifq, struct mbuf *m, struct ifnet *ifp, int adjust)
-{
- int active = 0;
-
- IF_LOCK(ifq);
- if (_IF_QFULL(ifq)) {
- IF_UNLOCK(ifq);
- if_inc_counter(ifp, IFCOUNTER_OQDROPS, 1);
- m_freem(m);
- return (0);
- }
- if (ifp != NULL) {
- if_inc_counter(ifp, IFCOUNTER_OBYTES, m->m_pkthdr.len + adjust);
- if (m->m_flags & (M_BCAST|M_MCAST))
- if_inc_counter(ifp, IFCOUNTER_OMCASTS, 1);
- active = ifp->if_drv_flags & IFF_DRV_OACTIVE;
- }
- _IF_ENQUEUE(ifq, m);
- IF_UNLOCK(ifq);
- if (ifp != NULL && !active)
- if_start(ifp);
- return (1);
-}
-
int
if_getmtu_family(if_t ifp, int family)
{
Modified: projects/ifnet/sys/net/if.h
==============================================================================
--- projects/ifnet/sys/net/if.h Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/net/if.h Mon Jan 12 11:25:04 2015 (r277065)
@@ -143,11 +143,11 @@ struct if_data {
#define IFF_LOOPBACK 0x8 /* (i) is a loopback net */
#define IFF_POINTOPOINT 0x10 /* (i) is a point-to-point link */
/* 0x20 was IFF_SMART */
-#define IFF_DRV_RUNNING 0x40 /* (d) resources allocated */
+#define IFF_RUNNING 0x40 /* (d) resources allocated */
#define IFF_NOARP 0x80 /* (n) no address resolution protocol */
#define IFF_PROMISC 0x100 /* (n) receive all packets */
#define IFF_ALLMULTI 0x200 /* (n) receive all multicast packets */
-#define IFF_DRV_OACTIVE 0x400 /* (d) tx hardware queue is full */
+#define IFF_OACTIVE 0x400 /* (d) tx hardware queue is full */
#define IFF_SIMPLEX 0x800 /* (i) can't hear own transmissions */
#define IFF_LINK0 0x1000 /* per link layer defined bit */
#define IFF_LINK1 0x2000 /* per link layer defined bit */
@@ -160,18 +160,10 @@ struct if_data {
#define IFF_STATICARP 0x80000 /* (n) static ARP */
#define IFF_DYING 0x200000 /* (n) interface is winding down */
#define IFF_RENAMING 0x400000 /* (n) interface is being renamed */
-/*
- * Old names for driver flags so that user space tools can continue to use
- * the old (portable) names.
- */
-#ifndef _KERNEL
-#define IFF_RUNNING IFF_DRV_RUNNING
-#define IFF_OACTIVE IFF_DRV_OACTIVE
-#endif
/* flags set internally only: */
#define IFF_CANTCHANGE \
- (IFF_BROADCAST|IFF_POINTOPOINT|IFF_DRV_RUNNING|IFF_DRV_OACTIVE|\
+ (IFF_BROADCAST|IFF_POINTOPOINT|IFF_RUNNING|IFF_OACTIVE|\
IFF_SIMPLEX|IFF_MULTICAST|IFF_ALLMULTI|IFF_PROMISC|\
IFF_DYING|IFF_CANTCONFIG)
@@ -578,7 +570,6 @@ typedef enum {
typedef enum {
/* uint32_t */
IF_FLAGS = 1,
- IF_DRV_FLAGS,
IF_CAPABILITIES,
IF_CAPENABLE,
IF_MTU,
@@ -598,7 +589,6 @@ typedef int (*if_output_t)(if_t, struct
struct route *);
typedef int (*if_ioctl_t)(if_t, u_long, caddr_t);
typedef uint64_t (*if_get_counter_t)(if_t, ift_counter);
-typedef void (*if_start_t)(if_t);
typedef void (*if_qflush_t)(if_t);
typedef int (*if_resolvemulti_t)(if_t, struct sockaddr **,
struct sockaddr *);
@@ -616,7 +606,6 @@ struct ifops {
if_ioctl_t ifop_ioctl; /* ioctl routine */
if_get_counter_t ifop_get_counter; /* get counter values */
if_init_t ifop_init; /* init routine */
- if_start_t ifop_start; /* initiate output routine */
if_qflush_t ifop_qflush; /* flush any queue */
if_resolvemulti_t ifop_resolvemulti; /* validate/resolve multicast */
if_reassign_t ifop_reassign; /* reassign to vnet routine */
Modified: projects/ifnet/sys/net/if_debug.c
==============================================================================
--- projects/ifnet/sys/net/if_debug.c Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/net/if_debug.c Mon Jan 12 11:25:04 2015 (r277065)
@@ -69,7 +69,6 @@ if_show_ifnet(struct ifnet *ifp)
IF_DB_PRINTF("%p", if_label);
IF_DB_PRINTF("%u", if_pcount);
IF_DB_PRINTF("0x%08x", if_flags);
- IF_DB_PRINTF("0x%08x", if_drv_flags);
IF_DB_PRINTF("0x%08x", if_capabilities);
IF_DB_PRINTF("0x%08x", if_capenable);
IF_DB_PRINTF("%p", if_snd.ifq_head);
Modified: projects/ifnet/sys/net/if_ethersubr.c
==============================================================================
--- projects/ifnet/sys/net/if_ethersubr.c Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/net/if_ethersubr.c Mon Jan 12 11:25:04 2015 (r277065)
@@ -176,8 +176,7 @@ ether_output(struct ifnet *ifp, struct m
M_PROFILE(m);
if (ifp->if_flags & IFF_MONITOR)
senderr(ENETDOWN);
- if (!((ifp->if_flags & IFF_UP) &&
- (ifp->if_drv_flags & IFF_DRV_RUNNING)))
+ if ((ifp->if_flags & IFF_UP) == 0)
senderr(ENETDOWN);
hlen = ETHER_HDR_LEN;
@@ -386,13 +385,6 @@ ether_input_internal(struct ifnet *ifp,
m_freem(m);
return;
}
-#ifdef DIAGNOSTIC
- if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) {
- if_printf(ifp, "discard frame at !IFF_DRV_RUNNING\n");
- m_freem(m);
- return;
- }
-#endif
/*
* Do consistency checks to verify assumptions
* made by code past this point.
Modified: projects/ifnet/sys/net/if_loop.c
==============================================================================
--- projects/ifnet/sys/net/if_loop.c Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/net/if_loop.c Mon Jan 12 11:25:04 2015 (r277065)
@@ -367,7 +367,6 @@ loioctl(if_t ifp, u_long cmd, caddr_t da
switch (cmd) {
case SIOCSIFADDR:
if_addflags(ifp, IF_FLAGS, IFF_UP);
- if_addflags(ifp, IF_DRV_FLAGS, IFF_DRV_RUNNING);
/*
* Everything else is done at a higher level.
*/
Modified: projects/ifnet/sys/net/if_mib.c
==============================================================================
--- projects/ifnet/sys/net/if_mib.c Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/net/if_mib.c Mon Jan 12 11:25:04 2015 (r277065)
@@ -102,7 +102,7 @@ sysctl_ifdata(SYSCTL_HANDLER_ARGS) /* XX
ifmd.ifmd_pcount = ifp->if_pcount;
if_data_copy(ifp, &ifmd.ifmd_data);
- ifmd.ifmd_flags = ifp->if_flags | ifp->if_drv_flags;
+ ifmd.ifmd_flags = ifp->if_flags;
ifmd.ifmd_snd_len = ifp->if_snd.ifq_len;
ifmd.ifmd_snd_maxlen = ifp->if_snd.ifq_maxlen;
ifmd.ifmd_snd_drops = if_get_counter(ifp, IFCOUNTER_OQDROPS);
Modified: projects/ifnet/sys/net/if_var.h
==============================================================================
--- projects/ifnet/sys/net/if_var.h Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/net/if_var.h Mon Jan 12 11:25:04 2015 (r277065)
@@ -109,7 +109,6 @@ struct ifnet {
/* Variable fields that are touched by the stack and drivers. */
uint32_t if_flags; /* up/down, broadcast, etc. */
- uint32_t if_drv_flags; /* driver-managed status flags */
uint32_t if_capabilities;/* interface features & capabilities */
uint32_t if_capenable; /* enabled features & capabilities */
void *if_linkmib; /* link-type-specific MIB data */
@@ -465,13 +464,6 @@ if_transmit(if_t ifp, struct mbuf *m)
return (ifp->if_ops->ifop_transmit(ifp, m));
}
-static inline void
-if_start(if_t ifp)
-{
-
- return (ifp->if_ops->ifop_start(ifp));
-}
-
static inline int
if_output(if_t ifp, struct mbuf *m, const struct sockaddr *dst,
struct route *ro)
Modified: projects/ifnet/sys/net/ifq.h
==============================================================================
--- projects/ifnet/sys/net/ifq.h Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/net/ifq.h Mon Jan 12 11:25:04 2015 (r277065)
@@ -157,8 +157,6 @@ int if_handoff(struct ifqueue *ifq, stru
#define IF_HANDOFF_ADJ(ifq, m, ifp, adj) \
if_handoff((struct ifqueue *)ifq, m, ifp, adj)
-void if_start(struct ifnet *);
-
#define IFQ_ENQUEUE(ifq, m, err) \
do { \
IF_LOCK(ifq); \
Modified: projects/ifnet/sys/net/rtsock.c
==============================================================================
--- projects/ifnet/sys/net/rtsock.c Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/net/rtsock.c Mon Jan 12 11:25:04 2015 (r277065)
@@ -1252,7 +1252,7 @@ rt_ifmsg(struct ifnet *ifp)
return;
ifm = mtod(m, struct if_msghdr *);
ifm->ifm_index = ifp->if_index;
- ifm->ifm_flags = ifp->if_flags | ifp->if_drv_flags;
+ ifm->ifm_flags = ifp->if_flags;
if_data_copy(ifp, &ifm->ifm_data);
ifm->ifm_addrs = 0;
rt_dispatch(m, AF_UNSPEC);
@@ -1557,7 +1557,7 @@ sysctl_iflist_ifml(struct ifnet *ifp, st
ifm32 = (struct if_msghdrl32 *)ifm;
ifm32->ifm_addrs = info->rti_addrs;
- ifm32->ifm_flags = ifp->if_flags | ifp->if_drv_flags;
+ ifm32->ifm_flags = ifp->if_flags;
ifm32->ifm_index = ifp->if_index;
ifm32->_ifm_spare1 = 0;
ifm32->ifm_len = sizeof(*ifm32);
@@ -1567,7 +1567,7 @@ sysctl_iflist_ifml(struct ifnet *ifp, st
#endif
{
ifm->ifm_addrs = info->rti_addrs;
- ifm->ifm_flags = ifp->if_flags | ifp->if_drv_flags;
+ ifm->ifm_flags = ifp->if_flags;
ifm->ifm_index = ifp->if_index;
ifm->_ifm_spare1 = 0;
ifm->ifm_len = sizeof(*ifm);
@@ -1595,14 +1595,14 @@ sysctl_iflist_ifm(struct ifnet *ifp, str
ifm32 = (struct if_msghdr32 *)ifm;
ifm32->ifm_addrs = info->rti_addrs;
- ifm32->ifm_flags = ifp->if_flags | ifp->if_drv_flags;
+ ifm32->ifm_flags = ifp->if_flags;
ifm32->ifm_index = ifp->if_index;
ifd = &ifm32->ifm_data;
} else
#endif
{
ifm->ifm_addrs = info->rti_addrs;
- ifm->ifm_flags = ifp->if_flags | ifp->if_drv_flags;
+ ifm->ifm_flags = ifp->if_flags;
ifm->ifm_index = ifp->if_index;
ifd = &ifm->ifm_data;
}
Modified: projects/ifnet/sys/netinet/ip_fastfwd.c
==============================================================================
--- projects/ifnet/sys/netinet/ip_fastfwd.c Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/netinet/ip_fastfwd.c Mon Jan 12 11:25:04 2015 (r277065)
@@ -134,9 +134,7 @@ ip_findroute(struct route *ro, struct in
* Route there and interface still up?
*/
rt = ro->ro_rt;
- if (rt && (rt->rt_flags & RTF_UP) &&
- (rt->rt_ifp->if_flags & IFF_UP) &&
- (rt->rt_ifp->if_drv_flags & IFF_DRV_RUNNING)) {
+ if (rt && (rt->rt_flags & RTF_UP) && (rt->rt_ifp->if_flags & IFF_UP)) {
if (rt->rt_flags & RTF_GATEWAY)
dst = (struct sockaddr_in *)rt->rt_gateway;
} else {
Modified: projects/ifnet/sys/netinet6/in6.c
==============================================================================
--- projects/ifnet/sys/netinet6/in6.c Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/netinet6/in6.c Mon Jan 12 11:25:04 2015 (r277065)
@@ -1917,8 +1917,7 @@ in6if_do_dad(struct ifnet *ifp)
* XXX: we should rather mark "tentative" on such addresses,
* and do DAD after the interface becomes ready.
*/
- if (!((ifp->if_flags & IFF_UP) &&
- (ifp->if_drv_flags & IFF_DRV_RUNNING)))
+ if ((ifp->if_flags & IFF_UP) == 0)
return (0);
return (1);
Modified: projects/ifnet/sys/netinet6/nd6_nbr.c
==============================================================================
--- projects/ifnet/sys/netinet6/nd6_nbr.c Mon Jan 12 10:43:40 2015 (r277064)
+++ projects/ifnet/sys/netinet6/nd6_nbr.c Mon Jan 12 11:25:04 2015 (r277065)
@@ -1483,10 +1483,6 @@ nd6_dad_ns_output(struct dadq *dp, struc
if ((ifp->if_flags & IFF_UP) == 0) {
return;
}
- if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) {
- return;
- }
-
dp->dad_ns_ocount++;
nd6_ns_output(ifp, NULL, &ia->ia_addr.sin6_addr, NULL, 1);
}
More information about the svn-src-projects
mailing list