Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/virtio/network/if_vtnet.c
Show First 20 Lines • Show All 933 Lines • ▼ Show 20 Lines | #else | ||||
ifp->if_snd.ifq_drv_maxlen = virtqueue_size(vq) - 1; | ifp->if_snd.ifq_drv_maxlen = virtqueue_size(vq) - 1; | ||||
IFQ_SET_READY(&ifp->if_snd); | IFQ_SET_READY(&ifp->if_snd); | ||||
#endif | #endif | ||||
ifmedia_init(&sc->vtnet_media, IFM_IMASK, vtnet_ifmedia_upd, | ifmedia_init(&sc->vtnet_media, IFM_IMASK, vtnet_ifmedia_upd, | ||||
vtnet_ifmedia_sts); | vtnet_ifmedia_sts); | ||||
ifmedia_add(&sc->vtnet_media, VTNET_MEDIATYPE, 0, NULL); | ifmedia_add(&sc->vtnet_media, VTNET_MEDIATYPE, 0, NULL); | ||||
ifmedia_set(&sc->vtnet_media, VTNET_MEDIATYPE); | ifmedia_set(&sc->vtnet_media, VTNET_MEDIATYPE); | ||||
{ | |||||
struct ifmed ifm = { | |||||
.ifm_type = IFM_ETHER, | |||||
.ifm_variant = IFM_VFAST, | |||||
}; | |||||
ifmedia_add2(&sc->vtnet_media, &ifm); | |||||
ifmedia_set2(&sc->vtnet_media, &ifm); | |||||
} | |||||
/* Read (or generate) the MAC address for the adapter. */ | /* Read (or generate) the MAC address for the adapter. */ | ||||
vtnet_get_hwaddr(sc); | vtnet_get_hwaddr(sc); | ||||
ether_ifattach(ifp, sc->vtnet_hwaddr); | ether_ifattach(ifp, sc->vtnet_hwaddr); | ||||
if (virtio_with_feature(dev, VIRTIO_NET_F_STATUS)) | if (virtio_with_feature(dev, VIRTIO_NET_F_STATUS)) | ||||
ifp->if_capabilities |= IFCAP_LINKSTATE; | ifp->if_capabilities |= IFCAP_LINKSTATE; | ||||
▲ Show 20 Lines • Show All 147 Lines • ▼ Show 20 Lines | case SIOCDELMULTI: | ||||
VTNET_CORE_LOCK(sc); | VTNET_CORE_LOCK(sc); | ||||
if (ifp->if_drv_flags & IFF_DRV_RUNNING) | if (ifp->if_drv_flags & IFF_DRV_RUNNING) | ||||
vtnet_rx_filter_mac(sc); | vtnet_rx_filter_mac(sc); | ||||
VTNET_CORE_UNLOCK(sc); | VTNET_CORE_UNLOCK(sc); | ||||
break; | break; | ||||
case SIOCSIFMEDIA: | case SIOCSIFMEDIA: | ||||
case SIOCGIFMEDIA: | case SIOCGIFMEDIA: | ||||
case SIOCGIFMEDIA2: | |||||
error = ifmedia_ioctl(ifp, ifr, &sc->vtnet_media, cmd); | error = ifmedia_ioctl(ifp, ifr, &sc->vtnet_media, cmd); | ||||
break; | break; | ||||
case SIOCSIFCAP: | case SIOCSIFCAP: | ||||
VTNET_CORE_LOCK(sc); | VTNET_CORE_LOCK(sc); | ||||
mask = ifr->ifr_reqcap ^ ifp->if_capenable; | mask = ifr->ifr_reqcap ^ ifp->if_capenable; | ||||
if (mask & IFCAP_TXCSUM) | if (mask & IFCAP_TXCSUM) | ||||
▲ Show 20 Lines • Show All 2,840 Lines • Show Last 20 Lines |