Lines Matching refs:ifp
48 static int lio_set_rx_csum(if_t ifp, uint32_t data);
49 static int lio_set_tso4(if_t ifp);
50 static int lio_set_tso6(if_t ifp);
51 static int lio_set_lro(if_t ifp);
52 static int lio_change_mtu(if_t ifp, int new_mtu);
53 static int lio_set_mcast_list(if_t ifp);
54 static inline enum lio_ifflags lio_get_new_flags(if_t ifp);
65 lio_change_dev_flags(if_t ifp) in lio_change_dev_flags() argument
68 struct lio *lio = if_getsoftc(ifp); in lio_change_dev_flags()
77 nctrl.ncmd.s.param1 = lio_get_new_flags(ifp); in lio_change_dev_flags()
96 lio_ioctl(if_t ifp, u_long cmd, caddr_t data) in lio_ioctl() argument
98 struct lio *lio = if_getsoftc(ifp); in lio_ioctl()
105 if_setflagbits(ifp, IFF_UP, 0); in lio_ioctl()
106 error = ether_ioctl(ifp, cmd, data); in lio_ioctl()
110 error = lio_change_mtu(ifp, ifrequest->ifr_mtu); in lio_ioctl()
114 if (if_getflags(ifp) & IFF_UP) { in lio_ioctl()
115 if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { in lio_ioctl()
116 if ((if_getflags(ifp) ^ lio->if_flags) & in lio_ioctl()
118 error = lio_change_dev_flags(ifp); in lio_ioctl()
125 if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) in lio_ioctl()
126 lio_stop(ifp); in lio_ioctl()
128 lio->if_flags = if_getflags(ifp); in lio_ioctl()
132 if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) in lio_ioctl()
133 error = lio_set_mcast_list(ifp); in lio_ioctl()
144 error = ifmedia_ioctl(ifp, ifrequest, &lio->ifmedia, cmd); in lio_ioctl()
149 if_getcapenable(ifp); in lio_ioctl()
157 if_togglecapenable(ifp, IFCAP_TXCSUM); in lio_ioctl()
158 if (if_getcapenable(ifp) & IFCAP_TXCSUM) in lio_ioctl()
159 if_sethwassistbits(ifp, (CSUM_TCP | in lio_ioctl()
163 if_sethwassistbits(ifp, 0, in lio_ioctl()
168 if_togglecapenable(ifp, IFCAP_TXCSUM_IPV6); in lio_ioctl()
169 if (if_getcapenable(ifp) & IFCAP_TXCSUM_IPV6) in lio_ioctl()
170 if_sethwassistbits(ifp, (CSUM_UDP_IPV6 | in lio_ioctl()
173 if_sethwassistbits(ifp, 0, in lio_ioctl()
178 error |= lio_set_rx_csum(ifp, (features & in lio_ioctl()
183 error |= lio_set_tso4(ifp); in lio_ioctl()
186 error |= lio_set_tso6(ifp); in lio_ioctl()
189 error |= lio_set_lro(ifp); in lio_ioctl()
192 if_togglecapenable(ifp, IFCAP_VLAN_HWTAGGING); in lio_ioctl()
195 if_togglecapenable(ifp, IFCAP_VLAN_HWFILTER); in lio_ioctl()
198 if_togglecapenable(ifp, IFCAP_VLAN_HWTSO); in lio_ioctl()
200 VLAN_CAPABILITIES(ifp); in lio_ioctl()
205 error = ether_ioctl(ifp, cmd, data); in lio_ioctl()
213 lio_set_tso4(if_t ifp) in lio_set_tso4() argument
215 struct lio *lio = if_getsoftc(ifp); in lio_set_tso4()
217 if (if_getcapabilities(ifp) & IFCAP_TSO4) { in lio_set_tso4()
218 if_togglecapenable(ifp, IFCAP_TSO4); in lio_set_tso4()
219 if (if_getcapenable(ifp) & IFCAP_TSO4) in lio_set_tso4()
220 if_sethwassistbits(ifp, CSUM_IP_TSO, 0); in lio_set_tso4()
222 if_sethwassistbits(ifp, 0, CSUM_IP_TSO); in lio_set_tso4()
232 lio_set_tso6(if_t ifp) in lio_set_tso6() argument
234 struct lio *lio = if_getsoftc(ifp); in lio_set_tso6()
236 if (if_getcapabilities(ifp) & IFCAP_TSO6) { in lio_set_tso6()
237 if_togglecapenable(ifp, IFCAP_TSO6); in lio_set_tso6()
238 if (if_getcapenable(ifp) & IFCAP_TSO6) in lio_set_tso6()
239 if_sethwassistbits(ifp, CSUM_IP6_TSO, 0); in lio_set_tso6()
241 if_sethwassistbits(ifp, 0, CSUM_IP6_TSO); in lio_set_tso6()
251 lio_set_rx_csum(if_t ifp, uint32_t data) in lio_set_rx_csum() argument
253 struct lio *lio = if_getsoftc(ifp); in lio_set_rx_csum()
256 if (if_getcapabilities(ifp) & (IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6)) { in lio_set_rx_csum()
257 if_togglecapenable(ifp, (IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6)); in lio_set_rx_csum()
261 if ((if_getcapabilities(ifp) & IFCAP_LRO) && in lio_set_rx_csum()
262 (if_getcapenable(ifp) & IFCAP_LRO)) { in lio_set_rx_csum()
263 ret = lio_set_feature(ifp, LIO_CMD_LRO_DISABLE, in lio_set_rx_csum()
266 if_togglecapenable(ifp, IFCAP_LRO); in lio_set_rx_csum()
278 lio_set_lro(if_t ifp) in lio_set_lro() argument
280 struct lio *lio = if_getsoftc(ifp); in lio_set_lro()
283 if (!(if_getcapabilities(ifp) & IFCAP_LRO)) { in lio_set_lro()
288 if ((!(if_getcapenable(ifp) & IFCAP_LRO)) && in lio_set_lro()
289 (if_getcapenable(ifp) & IFCAP_RXCSUM) && in lio_set_lro()
290 (if_getcapenable(ifp) & IFCAP_RXCSUM_IPV6)) { in lio_set_lro()
291 if_togglecapenable(ifp, IFCAP_LRO); in lio_set_lro()
294 ret = lio_set_feature(ifp, LIO_CMD_LRO_ENABLE, LIO_LROIPV4 | in lio_set_lro()
297 } else if (if_getcapenable(ifp) & IFCAP_LRO) { in lio_set_lro()
298 if_togglecapenable(ifp, IFCAP_LRO); in lio_set_lro()
301 ret = lio_set_feature(ifp, LIO_CMD_LRO_DISABLE, LIO_LROIPV4 | in lio_set_lro()
340 lio_change_mtu(if_t ifp, int new_mtu) in lio_change_mtu() argument
342 struct lio *lio = if_getsoftc(ifp); in lio_change_mtu()
406 lio_dev_info(oct, "MTU Changed from %d to %d\n", if_getmtu(ifp), in lio_change_mtu()
408 if_setmtu(ifp, new_mtu); in lio_change_mtu()
423 lio_set_mac(if_t ifp, uint8_t *p) in lio_set_mac() argument
426 struct lio *lio = if_getsoftc(ifp); in lio_set_mac()
467 lio_get_new_flags(if_t ifp) in lio_get_new_flags() argument
471 if (if_getflags(ifp) & IFF_PROMISC) in lio_get_new_flags()
474 if (if_getflags(ifp) & IFF_ALLMULTI) in lio_get_new_flags()
477 if (if_getflags(ifp) & IFF_MULTICAST) { in lio_get_new_flags()
484 if (if_llmaddr_count(ifp) > LIO_MAX_MULTICAST_ADDR) in lio_get_new_flags()
487 if (if_getflags(ifp) & IFF_BROADCAST) in lio_get_new_flags()
511 lio_set_mcast_list(if_t ifp) in lio_set_mcast_list() argument
513 struct lio *lio = if_getsoftc(ifp); in lio_set_mcast_list()
524 nctrl.ncmd.s.param1 = lio_get_new_flags(ifp); in lio_set_mcast_list()
530 mc_count = if_foreach_llmaddr(ifp, lio_copy_maddr, &nctrl.udd[0]); in lio_set_mcast_list()