sc->sc_rx_capability |= OFFLOAD_VLAN;
txp_capabilities(sc)	struct txp_softc *sc;{	struct ifnet *ifp = &sc->sc_arpcom.ac_if;	struct txp_rsp_desc *rsp = NULL;	struct txp_ext_desc *ext;	if (txp_command2(sc, TXP_CMD_OFFLOAD_READ, 0, 0, 0, NULL, 0, &rsp, 1))		goto out;	if (rsp->rsp_numdesc != 1)		goto out;	ext = (struct txp_ext_desc *)(rsp + 1);	sc->sc_tx_capability = ext->ext_1 & OFFLOAD_MASK;	sc->sc_rx_capability = ext->ext_2 & OFFLOAD_MASK;#if NVLAN > 0	ifp->if_capabilities |= IFCAP_VLAN_MTU;	if (rsp->rsp_par2 & rsp->rsp_par3 & OFFLOAD_VLAN) {		sc->sc_tx_capability |= OFFLOAD_VLAN;		sc->sc_rx_capability |= OFFLOAD_VLAN;		ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING;	}#endif#if 0	/* not ready yet */	if (rsp->rsp_par2 & rsp->rsp_par3 & OFFLOAD_IPSEC) {		sc->sc_tx_capability |= OFFLOAD_IPSEC;		sc->sc_rx_capability |= OFFLOAD_IPSEC;		ifp->if_capabilities |= IFCAP_IPSEC;	}#endif	if (rsp->rsp_par2 & rsp->rsp_par3 & OFFLOAD_IPCKSUM) {		sc->sc_tx_capability |= OFFLOAD_IPCKSUM;		sc->sc_rx_capability |= OFFLOAD_IPCKSUM;		ifp->if_capabilities |= IFCAP_CSUM_IPv4;	}	if (rsp->rsp_par2 & rsp->rsp_par3 & OFFLOAD_TCPCKSUM) {		sc->sc_rx_capability |= OFFLOAD_TCPCKSUM;#ifdef TRY_TX_TCP_CSUM		sc->sc_tx_capability |= OFFLOAD_TCPCKSUM;		ifp->if_capabilities |= IFCAP_CSUM_TCPv4;#endif	}	if (rsp->rsp_par2 & rsp->rsp_par3 & OFFLOAD_UDPCKSUM) {		sc->sc_rx_capability |= OFFLOAD_UDPCKSUM;#ifdef TRY_TX_UDP_CSUM		sc->sc_tx_capability |= OFFLOAD_UDPCKSUM;		ifp->if_capabilities |= IFCAP_CSUM_UDPv4;#endif	}	if (txp_command(sc, TXP_CMD_OFFLOAD_WRITE, 0,	    sc->sc_tx_capability, sc->sc_rx_capability, NULL, NULL, NULL, 1))		goto out;out:	if (rsp != NULL)		free(rsp, M_DEVBUF);}