Lines Matching +full:u +full:- +full:blox

1 /* SPDX-License-Identifier: GPL-2.0-or-later */
13 * Corey Minyard <wf-rch!minyard@relay.EU.net>
16 * Bjorn Ekwall. <bj0rn@blox.se>
92 * - qdisc return codes
93 * - driver transmit return codes
94 * - errno values
98 * the driver transmit return codes though - when qdiscs are used, the actual
105 /* qdisc ->enqueue() return codes. */
115 #define net_xmit_errno(e) ((e) != NET_XMIT_CN ? -ENOBUFS : 0)
135 * - successful transmission (rc == NETDEV_TX_OK) in dev_xmit_complete()
136 * - error while transmitting (rc < 0) in dev_xmit_complete()
137 * - error while queueing to a different device (rc & NET_XMIT_MASK) in dev_xmit_complete()
146 * Compute the worst-case header length according to the protocols
200 /* per-cpu stats, allocated on demand.
247 #define netdev_hw_addr_list_count(l) ((l)->count)
250 list_for_each_entry(ha, &(l)->list, list)
252 #define netdev_uc_count(dev) netdev_hw_addr_list_count(&(dev)->uc)
253 #define netdev_uc_empty(dev) netdev_hw_addr_list_empty(&(dev)->uc)
255 netdev_hw_addr_list_for_each(ha, &(dev)->uc)
258 if ((_ha)->sync_cnt)
260 #define netdev_mc_count(dev) netdev_hw_addr_list_count(&(dev)->mc)
261 #define netdev_mc_empty(dev) netdev_hw_addr_list_empty(&(dev)->mc)
263 netdev_hw_addr_list_for_each(ha, &(dev)->mc)
266 if ((_ha)->sync_cnt)
275 (HH_DATA_MOD - (((__len - 1) & (HH_DATA_MOD - 1)) + 1))
277 (((__len)+(HH_DATA_MOD-1))&~(HH_DATA_MOD - 1))
281 /* Reserve HH_DATA_MOD byte-aligned hard_header_len, but at least that much.
283 * dev->hard_header_len ? (dev->hard_header_len +
284 * (HH_DATA_MOD - 1)) & ~(HH_DATA_MOD - 1) : 0
290 ((((dev)->hard_header_len+(dev)->needed_headroom)&~(HH_DATA_MOD - 1)) + HH_DATA_MOD)
292 ((((dev)->hard_header_len+(dev)->needed_headroom+(extra))&~(HH_DATA_MOD - 1)) + HH_DATA_MOD)
339 * to the per-CPU poll_list, and whoever clears that bit
368 NAPI_STATE_NPSVC, /* Netpoll - don't dequeue from poll_list */
372 NAPI_STATE_PREFER_BUSY_POLL, /* prefer busy-polling over softirq processing*/
400 * enum rx_handler_result - Possible return values for rx_handlers.
404 * case skb->dev was changed by rx_handler.
412 * to register a second rx_handler will return -EBUSY.
425 * If the rx_handler changed skb->dev, to divert the skb to another
431 * are registered on exact device (ptype->dev == skb->dev).
433 * If the rx_handler didn't change skb->dev, but wants the skb to be normally
454 return test_bit(NAPI_STATE_DISABLE, &n->state); in napi_disable_pending()
459 return test_bit(NAPI_STATE_PREFER_BUSY_POLL, &n->state); in napi_prefer_busy_poll()
465 * napi_schedule - schedule NAPI poll
478 * napi_schedule_irqoff - schedule NAPI poll
489 /* Try to reschedule poll. Called by dev->poll() after napi_complete(). */
501 * napi_complete - NAPI processing complete
516 * napi_disable - prevent NAPI from scheduling
527 * napi_synchronize - wait until NAPI is not running
537 while (test_bit(NAPI_STATE_SCHED, &n->state)) in napi_synchronize()
544 * napi_if_scheduled_mark_missed - if napi is running, set the
555 val = READ_ONCE(n->state); in napi_if_scheduled_mark_missed()
564 } while (!try_cmpxchg(&n->state, &val, new)); in napi_if_scheduled_mark_missed()
597 * read-mostly part
623 * write-mostly part
671 return q->numa_node; in netdev_queue_numa_node_read()
680 q->numa_node = node; in netdev_queue_numa_node_write()
722 * Each entry is a 32bit value. Upper part is the high-order bits
725 * possible CPUs : rps_cpu_mask = roundup_pow_of_two(nr_cpu_ids) - 1
727 * meaning we use 32-6=26 bits for the hash.
745 unsigned int index = hash & table->mask; in rps_record_sock_flow()
751 if (table->ents[index] != val) in rps_record_sock_flow()
752 table->ents[index] = val; in rps_record_sock_flow()
788 /* XPS map type and offset of the xps map within net_device->xps_maps[]. */
808 - sizeof(struct xps_map)) / sizeof(u16))
814 * in nr_ids. This will help not accessing out-of-bound memory.
818 * not crossing its upper bound, as the original dev->num_tc can be updated in
874 return a->id_len == b->id_len && in netdev_phys_item_id_same()
875 memcmp(a->id, b->id, a->id_len) == 0; in netdev_phys_item_id_same()
1080 * corner cases, but the stack really does a non-trivial amount
1117 * Old-style ioctl entry point. This is used internally by the
1141 * for dev->watchdog ticks.
1148 * 1. Define @ndo_get_stats64 to fill in a zero-initialised
1151 * (which should normally be dev->stats) and return a pointer to
1154 * 3. Update dev->stats asynchronously and atomically, and define
1175 * SR-IOV management functions.
1209 * so the underlying device can perform whatever needed clean-ups to
1236 * FC-GS Fabric Device Management Information(FDMI) specification.
1267 * Adjusts the requested feature flags according to device-specific
1274 * Must return >0 or -errno if it changed dev->features itself.
1304 * Called to change device carrier. Soft-devices (like dummy, team, etc)
1308 * network cables) or protocol-dependent mechanisms (eg
1335 * Called when a user wants to set a max-rate limitation of specific
1359 * no frames were xmit'ed and core-caller will free all frames.
1615 * enum netdev_priv_flags - &struct net_device priv_flags
1630 * release skb->dst
1632 * @IFF_DISABLE_NETPOLL: disable netpoll at run-time
1739 * struct net_device - The DEVICE structure.
1742 * data with strictly "high-level" data, and it has to know about
1762 * @ptype_all: Device-specific packet handlers for all protocols
1763 * @ptype_specific: Device-specific, protocol-specific packet handlers
1767 * @hw_features: User-changeable features
1769 * @wanted_features: User-requested features
1864 * @ieee802154_ptr: IEEE 802.15.4 low-rate Wireless Personal Area Network
1889 * @rx_cpu_rmap: CPU reverse-mapping for RX completion interrupts,
1930 * @ml_priv: Mid-layer private
1931 * @ml_priv_type: Mid-layer private type
1946 * @sysfs_rx_queue_group: Space for optional per-rx queue attributes
1967 * @qdisc_tx_busylock: lockdep class annotating Qdisc->busylock spinlock
1973 * @wol_enabled: Wake-on-LAN is enabled
1977 * @net_notifier_list: List of per-net netdev notifier block
1989 * dev->addr_list_lock.
2038 /* Read-mostly cache-line for fast-path access */
2046 /* Note : dev->mtu is often read without holding a lock.
2140 /* Protocol-specific pointers */
2185 #define GRO_LEGACY_MAX_SIZE 65536u
2187 * and shinfo->gso_segs is a 16bit field.
2189 #define GRO_MAX_SIZE (8 * 65535u)
2233 /* These may be needed for future network-power-down code. */
2274 /* mid-layer private */
2300 #define GSO_MAX_SEGS 65535u
2301 #define GSO_LEGACY_MAX_SIZE 65536u
2303 * and shinfo->gso_segs is a 16bit field.
2357 if (!(dev->features & NETIF_F_GRO) || dev->xdp_prog) in netif_elide_gro()
2367 return dev->prio_tc_map[prio & TC_BITMASK]; in netdev_get_prio_tc_map()
2373 if (tc >= dev->num_tc) in netdev_set_prio_tc_map()
2374 return -EINVAL; in netdev_set_prio_tc_map()
2376 dev->prio_tc_map[prio & TC_BITMASK] = tc & TC_BITMASK; in netdev_set_prio_tc_map()
2388 return dev->num_tc; in netdev_get_num_tc()
2415 return max_t(int, -dev->num_tc, 0); in netdev_get_sb_channel()
2422 return &dev->_tx[index]; in netdev_get_tx_queue()
2439 for (i = 0; i < dev->num_tx_queues; i++) in netdev_for_each_tx_queue()
2440 f(dev, &dev->_tx[i], arg); in netdev_for_each_tx_queue()
2450 (dev)->qdisc_tx_busylock = &qdisc_tx_busylock_key; \
2451 lockdep_set_class(&(dev)->addr_list_lock, \
2453 for (i = 0; i < (dev)->num_tx_queues; i++) \
2454 lockdep_set_class(&(dev)->_tx[i]._xmit_lock, \
2469 return dev->priv_flags & IFF_PHONY_HEADROOM ? 0 : dev->needed_headroom; in netdev_get_fwd_headroom()
2474 if (dev->netdev_ops->ndo_set_rx_headroom) in netdev_set_rx_headroom()
2475 dev->netdev_ops->ndo_set_rx_headroom(dev, new_hr); in netdev_set_rx_headroom()
2481 netdev_set_rx_headroom(dev, -1); in netdev_reset_rx_headroom()
2487 if (dev->ml_priv_type != type) in netdev_get_ml_priv()
2490 return dev->ml_priv; in netdev_get_ml_priv()
2497 WARN(dev->ml_priv_type && dev->ml_priv_type != type, in netdev_set_ml_priv()
2498 "Overwriting already set ml_priv_type (%u) with different ml_priv_type (%u)!\n", in netdev_set_ml_priv()
2499 dev->ml_priv_type, type); in netdev_set_ml_priv()
2500 WARN(!dev->ml_priv_type && dev->ml_priv, in netdev_set_ml_priv()
2503 dev->ml_priv = ml_priv; in netdev_set_ml_priv()
2504 dev->ml_priv_type = type; in netdev_set_ml_priv()
2513 return read_pnet(&dev->nd_net); in dev_net()
2519 write_pnet(&dev->nd_net, net); in dev_net_set()
2523 * netdev_priv - access network device private data
2536 #define SET_NETDEV_DEV(net, pdev) ((net)->dev.parent = (pdev))
2539 * fine-grained identification of different network device types. For
2542 #define SET_NETDEV_DEVTYPE(net, devtype) ((net)->dev.type = (devtype))
2553 * netif_napi_add() - initialize a NAPI context
2559 * *any* of the other NAPI-related functions.
2574 set_bit(NAPI_STATE_NO_BUSY_POLL, &napi->state); in netif_napi_add_tx_weight()
2579 * netif_napi_add_tx() - initialize a NAPI context to be used for Tx only
2596 * __netif_napi_del - remove a NAPI context
2606 * netif_napi_del - remove a NAPI context
2651 /* often modified stats are per-CPU, other are shared (netdev->stats) */
2670 struct pcpu_sw_netstats *tstats = this_cpu_ptr(dev->tstats); in dev_sw_netstats_rx_add()
2672 u64_stats_update_begin(&tstats->syncp); in dev_sw_netstats_rx_add()
2673 u64_stats_add(&tstats->rx_bytes, len); in dev_sw_netstats_rx_add()
2674 u64_stats_inc(&tstats->rx_packets); in dev_sw_netstats_rx_add()
2675 u64_stats_update_end(&tstats->syncp); in dev_sw_netstats_rx_add()
2682 struct pcpu_sw_netstats *tstats = this_cpu_ptr(dev->tstats); in dev_sw_netstats_tx_add()
2684 u64_stats_update_begin(&tstats->syncp); in dev_sw_netstats_tx_add()
2685 u64_stats_add(&tstats->tx_bytes, len); in dev_sw_netstats_tx_add()
2686 u64_stats_add(&tstats->tx_packets, packets); in dev_sw_netstats_tx_add()
2687 u64_stats_update_end(&tstats->syncp); in dev_sw_netstats_tx_add()
2692 struct pcpu_lstats *lstats = this_cpu_ptr(dev->lstats); in dev_lstats_add()
2694 u64_stats_update_begin(&lstats->syncp); in dev_lstats_add()
2695 u64_stats_add(&lstats->bytes, len); in dev_lstats_add()
2696 u64_stats_inc(&lstats->packets); in dev_lstats_add()
2697 u64_stats_update_end(&lstats->syncp); in dev_lstats_add()
2708 u64_stats_init(&stat->syncp); \
2725 u64_stats_init(&stat->syncp); \
2772 - we can use this eg to kick tcp sessions
2898 info->dev = dev; in netdev_notifier_info_init()
2899 info->extack = NULL; in netdev_notifier_info_init()
2905 return info->dev; in netdev_notifier_info_to_dev()
2911 return info->extack; in netdev_notifier_info_to_extack()
2920 list_for_each_entry(d, &(net)->dev_base_head, dev_list)
2922 list_for_each_entry_reverse(d, &(net)->dev_base_head, dev_list)
2924 list_for_each_entry_rcu(d, &(net)->dev_base_head, dev_list)
2926 list_for_each_entry_safe(d, n, &(net)->dev_base_head, dev_list)
2928 list_for_each_entry_continue(d, &(net)->dev_base_head, dev_list)
2930 list_for_each_entry_continue_reverse(d, &(net)->dev_base_head, \
2933 list_for_each_entry_continue_rcu(d, &(net)->dev_base_head, dev_list)
2945 lh = dev->dev_list.next; in next_net_device()
2946 return lh == &net->dev_base_head ? NULL : net_device_entry(lh); in next_net_device()
2955 lh = rcu_dereference(list_next_rcu(&dev->dev_list)); in next_net_device_rcu()
2956 return lh == &net->dev_base_head ? NULL : net_device_entry(lh); in next_net_device_rcu()
2961 return list_empty(&net->dev_base_head) ? NULL : in first_net_device()
2962 net_device_entry(net->dev_base_head.next); in first_net_device()
2967 struct list_head *lh = rcu_dereference(list_next_rcu(&net->dev_base_head)); in first_net_device_rcu()
2969 return lh == &net->dev_base_head ? NULL : net_device_entry(lh); in first_net_device_rcu()
3057 if (!dev->header_ops || !dev->header_ops->create) in dev_hard_header()
3060 return dev->header_ops->create(skb, dev, type, daddr, saddr, len); in dev_hard_header()
3066 const struct net_device *dev = skb->dev; in dev_parse_header()
3068 if (!dev->header_ops || !dev->header_ops->parse) in dev_parse_header()
3070 return dev->header_ops->parse(skb, haddr); in dev_parse_header()
3075 const struct net_device *dev = skb->dev; in dev_parse_header_protocol()
3077 if (!dev->header_ops || !dev->header_ops->parse_protocol) in dev_parse_header_protocol()
3079 return dev->header_ops->parse_protocol(skb); in dev_parse_header_protocol()
3086 if (likely(len >= dev->hard_header_len)) in dev_validate_header()
3088 if (len < dev->min_header_len) in dev_validate_header()
3092 memset(ll_header + len, 0, dev->hard_header_len - len); in dev_validate_header()
3096 if (dev->header_ops && dev->header_ops->validate) in dev_validate_header()
3097 return dev->header_ops->validate(ll_header, len); in dev_validate_header()
3104 return dev->header_ops && dev->header_ops->create; in dev_has_header()
3108 * Incoming packets are placed on per-CPU queues
3165 sd->input_queue_head++; in input_queue_head_incr()
3173 *qtail = ++sd->input_queue_tail; in input_queue_tail_incr_save()
3208 for (i = 0; i < dev->num_tx_queues; i++) in netif_tx_schedule_all()
3214 clear_bit(__QUEUE_STATE_DRV_XOFF, &dev_queue->state); in netif_tx_start_queue()
3218 * netif_start_queue - allow transmit
3232 for (i = 0; i < dev->num_tx_queues; i++) { in netif_tx_start_all_queues()
3241 * netif_wake_queue - restart transmit
3256 for (i = 0; i < dev->num_tx_queues; i++) { in netif_tx_wake_all_queues()
3264 set_bit(__QUEUE_STATE_DRV_XOFF, &dev_queue->state); in netif_tx_stop_queue()
3268 * netif_stop_queue - stop transmitted packets
3283 return test_bit(__QUEUE_STATE_DRV_XOFF, &dev_queue->state); in netif_tx_queue_stopped()
3287 * netif_queue_stopped - test if transmit queue is flowblocked
3299 return dev_queue->state & QUEUE_STATE_ANY_XOFF; in netif_xmit_stopped()
3305 return dev_queue->state & QUEUE_STATE_ANY_XOFF_OR_FROZEN; in netif_xmit_frozen_or_stopped()
3311 return dev_queue->state & QUEUE_STATE_DRV_XOFF_OR_FROZEN; in netif_xmit_frozen_or_drv_stopped()
3315 * netdev_queue_set_dql_min_limit - set dql minimum limit
3328 dev_queue->dql.min_limit = min_limit; in netdev_queue_set_dql_min_limit()
3333 * netdev_txq_bql_enqueue_prefetchw - prefetch bql data for write
3342 prefetchw(&dev_queue->dql.num_queued); in netdev_txq_bql_enqueue_prefetchw()
3347 * netdev_txq_bql_complete_prefetchw - prefetch bql data for write
3356 prefetchw(&dev_queue->dql.limit); in netdev_txq_bql_complete_prefetchw()
3361 * netdev_tx_sent_queue - report the number of bytes queued to a given tx queue
3374 dql_queued(&dev_queue->dql, bytes); in netdev_tx_sent_queue()
3376 if (likely(dql_avail(&dev_queue->dql) >= 0)) in netdev_tx_sent_queue()
3379 set_bit(__QUEUE_STATE_STACK_XOFF, &dev_queue->state); in netdev_tx_sent_queue()
3389 if (unlikely(dql_avail(&dev_queue->dql) >= 0)) in netdev_tx_sent_queue()
3390 clear_bit(__QUEUE_STATE_STACK_XOFF, &dev_queue->state); in netdev_tx_sent_queue()
3406 dql_queued(&dev_queue->dql, bytes); in __netdev_tx_sent_queue()
3415 * netdev_sent_queue - report the number of bytes queued to hardware
3438 * netdev_tx_completed_queue - report number of packets/bytes at TX completion.
3453 dql_completed(&dev_queue->dql, bytes); in netdev_tx_completed_queue()
3462 if (unlikely(dql_avail(&dev_queue->dql) < 0)) in netdev_tx_completed_queue()
3465 if (test_and_clear_bit(__QUEUE_STATE_STACK_XOFF, &dev_queue->state)) in netdev_tx_completed_queue()
3471 * netdev_completed_queue - report bytes and packets completed by device
3489 clear_bit(__QUEUE_STATE_STACK_XOFF, &q->state); in netdev_tx_reset_queue()
3490 dql_reset(&q->dql); in netdev_tx_reset_queue()
3495 * netdev_reset_queue - reset the packets and bytes count of a network device
3507 * netdev_cap_txqueue - check if selected tx queue exceeds device queues
3516 if (unlikely(queue_index >= dev->real_num_tx_queues)) { in netdev_cap_txqueue()
3518 dev->name, queue_index, in netdev_cap_txqueue()
3519 dev->real_num_tx_queues); in netdev_cap_txqueue()
3527 * netif_running - test if up
3534 return test_bit(__LINK_STATE_START, &dev->state); in netif_running()
3545 * netif_start_subqueue - allow sending packets on subqueue
3559 * netif_stop_subqueue - stop sending packets on subqueue
3572 * __netif_subqueue_stopped - test status of subqueue
3587 * netif_subqueue_stopped - test status of subqueue
3600 * netif_wake_subqueue - allow sending packets on subqueue
3620 * netif_attr_test_mask - Test a CPU or Rx queue set in a mask
3636 * netif_attr_test_online - Test for online CPU/Rx queue
3656 * netif_attrmask_next - get the next CPU/Rx queue in a cpu/Rx queues mask
3666 /* -1 is a legal arg here. */ in netif_attrmask_next()
3667 if (n != -1) in netif_attrmask_next()
3677 * netif_attrmask_next_and - get the next CPU/Rx queue in \*src1p & \*src2p
3689 /* -1 is a legal arg here. */ in netif_attrmask_next_and()
3690 if (n != -1) in netif_attrmask_next_and()
3719 * netif_is_multiqueue - test if device has multiple transmit queues
3726 return dev->num_tx_queues > 1; in netif_is_multiqueue()
3737 dev->real_num_rx_queues = rxqs; in netif_set_real_num_rx_queues()
3747 return dev->_rx + rxq; in __netif_get_rx_queue()
3754 struct net_device *dev = queue->dev; in get_netdev_rx_queue_index()
3755 int index = queue - dev->_rx; in get_netdev_rx_queue_index()
3757 BUG_ON(index >= dev->num_rx_queues); in get_netdev_rx_queue_index()
3832 kfree_skb(napi->skb); in napi_free_frags()
3833 napi->skb = NULL; in napi_free_frags()
3903 if (!(dev->flags & IFF_UP)) in __is_skb_forwardable()
3909 len = dev->mtu + dev->hard_header_len + vlan_hdr_len; in __is_skb_forwardable()
3910 if (skb->len <= len) in __is_skb_forwardable()
3927 struct net_device_core_stats __percpu *p = READ_ONCE(dev->core_stats); in dev_core_stats()
3942 this_cpu_inc(p->FIELD); \
3960 skb_scrub_packet(skb, !net_eq(dev_net(dev), dev_net(skb->dev))); in DEV_CORE_STATS_INC()
3961 skb->priority = 0; in DEV_CORE_STATS_INC()
3972 this_cpu_dec(*dev->pcpu_refcnt); in __dev_put()
3974 refcount_dec(&dev->dev_refcnt); in __dev_put()
3983 this_cpu_inc(*dev->pcpu_refcnt); in __dev_hold()
3985 refcount_inc(&dev->dev_refcnt); in __dev_hold()
3995 ref_tracker_alloc(&dev->refcnt_tracker, tracker, gfp); in __netdev_tracker_alloc()
4006 refcount_dec(&dev->refcnt_tracker.no_tracker); in netdev_tracker_alloc()
4015 ref_tracker_free(&dev->refcnt_tracker, tracker); in netdev_tracker_free()
4038 * dev_hold - get reference to device
4050 * dev_put - release reference to device
4087 * netif_carrier_ok - test if carrier present
4094 return !test_bit(__LINK_STATE_NOCARRIER, &dev->state); in netif_carrier_ok()
4106 * netif_dormant_on - mark device as dormant.
4113 * in a "pending" state, waiting for some external event. For "on-
4119 if (!test_and_set_bit(__LINK_STATE_DORMANT, &dev->state)) in netif_dormant_on()
4124 * netif_dormant_off - set device as not dormant.
4131 if (test_and_clear_bit(__LINK_STATE_DORMANT, &dev->state)) in netif_dormant_off()
4136 * netif_dormant - test if device is dormant
4143 return test_bit(__LINK_STATE_DORMANT, &dev->state); in netif_dormant()
4148 * netif_testing_on - mark device as under test.
4159 if (!test_and_set_bit(__LINK_STATE_TESTING, &dev->state)) in netif_testing_on()
4164 * netif_testing_off - set device as not under test.
4171 if (test_and_clear_bit(__LINK_STATE_TESTING, &dev->state)) in netif_testing_off()
4176 * netif_testing - test if device is under test
4183 return test_bit(__LINK_STATE_TESTING, &dev->state); in netif_testing()
4188 * netif_oper_up - test if device is operational
4195 return (dev->operstate == IF_OPER_UP || in netif_oper_up()
4196 dev->operstate == IF_OPER_UNKNOWN /* backward compat */); in netif_oper_up()
4200 * netif_device_present - is device available or removed
4207 return test_bit(__LINK_STATE_PRESENT, &dev->state); in netif_device_present()
4262 #define netif_msg_drv(p) ((p)->msg_enable & NETIF_MSG_DRV)
4263 #define netif_msg_probe(p) ((p)->msg_enable & NETIF_MSG_PROBE)
4264 #define netif_msg_link(p) ((p)->msg_enable & NETIF_MSG_LINK)
4265 #define netif_msg_timer(p) ((p)->msg_enable & NETIF_MSG_TIMER)
4266 #define netif_msg_ifdown(p) ((p)->msg_enable & NETIF_MSG_IFDOWN)
4267 #define netif_msg_ifup(p) ((p)->msg_enable & NETIF_MSG_IFUP)
4268 #define netif_msg_rx_err(p) ((p)->msg_enable & NETIF_MSG_RX_ERR)
4269 #define netif_msg_tx_err(p) ((p)->msg_enable & NETIF_MSG_TX_ERR)
4270 #define netif_msg_tx_queued(p) ((p)->msg_enable & NETIF_MSG_TX_QUEUED)
4271 #define netif_msg_intr(p) ((p)->msg_enable & NETIF_MSG_INTR)
4272 #define netif_msg_tx_done(p) ((p)->msg_enable & NETIF_MSG_TX_DONE)
4273 #define netif_msg_rx_status(p) ((p)->msg_enable & NETIF_MSG_RX_STATUS)
4274 #define netif_msg_pktdata(p) ((p)->msg_enable & NETIF_MSG_PKTDATA)
4275 #define netif_msg_hw(p) ((p)->msg_enable & NETIF_MSG_HW)
4276 #define netif_msg_wol(p) ((p)->msg_enable & NETIF_MSG_WOL)
4286 return (1U << debug_value) - 1; in netif_msg_init()
4291 spin_lock(&txq->_xmit_lock); in __netif_tx_lock()
4293 WRITE_ONCE(txq->xmit_lock_owner, cpu); in __netif_tx_lock()
4298 __acquire(&txq->_xmit_lock); in __netif_tx_acquire()
4304 __release(&txq->_xmit_lock); in __netif_tx_release()
4309 spin_lock_bh(&txq->_xmit_lock); in __netif_tx_lock_bh()
4311 WRITE_ONCE(txq->xmit_lock_owner, smp_processor_id()); in __netif_tx_lock_bh()
4316 bool ok = spin_trylock(&txq->_xmit_lock); in __netif_tx_trylock()
4320 WRITE_ONCE(txq->xmit_lock_owner, smp_processor_id()); in __netif_tx_trylock()
4328 WRITE_ONCE(txq->xmit_lock_owner, -1); in __netif_tx_unlock()
4329 spin_unlock(&txq->_xmit_lock); in __netif_tx_unlock()
4335 WRITE_ONCE(txq->xmit_lock_owner, -1); in __netif_tx_unlock_bh()
4336 spin_unlock_bh(&txq->_xmit_lock); in __netif_tx_unlock_bh()
4340 * txq->trans_start can be read locklessly from dev_watchdog()
4344 if (txq->xmit_lock_owner != -1) in txq_trans_update()
4345 WRITE_ONCE(txq->trans_start, jiffies); in txq_trans_update()
4352 if (READ_ONCE(txq->trans_start) != now) in txq_trans_cond_update()
4353 WRITE_ONCE(txq->trans_start, now); in txq_trans_cond_update()
4356 /* legacy drivers only, netdev_start_xmit() sets txq->trans_start */
4365 * netif_tx_lock - grab network device transmit lock
4387 if ((dev->features & NETIF_F_LLTX) == 0) { \
4395 (((dev->features & NETIF_F_LLTX) == 0) ? \
4400 if ((dev->features & NETIF_F_LLTX) == 0) { \
4414 spin_lock(&dev->tx_global_lock); in netif_tx_disable()
4415 for (i = 0; i < dev->num_tx_queues; i++) { in netif_tx_disable()
4422 spin_unlock(&dev->tx_global_lock); in netif_tx_disable()
4431 nest_level = dev->nested_level; in netif_addr_lock()
4433 spin_lock_nested(&dev->addr_list_lock, nest_level); in netif_addr_lock()
4441 nest_level = dev->nested_level; in netif_addr_lock_bh()
4444 spin_lock_nested(&dev->addr_list_lock, nest_level); in netif_addr_lock_bh()
4449 spin_unlock(&dev->addr_list_lock); in netif_addr_unlock()
4454 spin_unlock_bh(&dev->addr_list_lock); in netif_addr_unlock_bh()
4462 list_for_each_entry_rcu(ha, &dev->dev_addrs.list, list)
4468 /* Support for loadable net-drivers */
4523 __dev_addr_set(dev, addr, dev->addr_len); in dev_addr_set()
4542 * __dev_uc_sync - Synchonize device's unicast list
4556 return __hw_addr_sync_dev(&dev->uc, dev, sync, unsync); in __dev_uc_sync()
4560 * __dev_uc_unsync - Remove synchronized addresses from device
4570 __hw_addr_unsync_dev(&dev->uc, dev, unsync); in __dev_uc_unsync()
4586 * __dev_mc_sync - Synchonize device's multicast list
4600 return __hw_addr_sync_dev(&dev->mc, dev, sync, unsync); in __dev_mc_sync()
4604 * __dev_mc_unsync - Remove synchronized addresses from device
4614 __hw_addr_unsync_dev(&dev->mc, dev, unsync); in __dev_mc_unsync()
4662 for (iter = &(dev)->adj_list.upper, \
4683 for (iter = (dev)->adj_list.lower.next, \
4689 for (iter = &(dev)->adj_list.lower, \
4698 for (iter = (dev)->adj_list.lower.next, \
4827 const struct net_device_ops *ops = dev->netdev_ops; in netdev_get_tstamp()
4829 if (ops->ndo_get_tstamp) in netdev_get_tstamp()
4830 return ops->ndo_get_tstamp(dev, hwtstamps, cycles); in netdev_get_tstamp()
4832 return hwtstamps->hwtstamp; in netdev_get_tstamp()
4840 return ops->ndo_start_xmit(skb, dev); in __netdev_start_xmit()
4851 const struct net_device_ops *ops = dev->netdev_ops; in netdev_start_xmit()
4886 return (dev->features & ~dev->hw_features) | dev->wanted_features; in netdev_get_wanted_features()
4943 return net_gso_ok(features, skb_shinfo(skb)->gso_type) && in skb_gso_ok()
4951 unlikely((skb->ip_summed != CHECKSUM_PARTIAL) && in netif_needs_gso()
4952 (skb->ip_summed != CHECKSUM_UNNECESSARY))); in netif_needs_gso()
4964 skb->protocol = protocol; in skb_gso_error_unwind()
4965 skb->encapsulation = 1; in skb_gso_error_unwind()
4968 skb->mac_header = mac_offset; in skb_gso_error_unwind()
4969 skb->network_header = skb->mac_header + mac_len; in skb_gso_error_unwind()
4970 skb->mac_len = mac_len; in skb_gso_error_unwind()
4975 return dev->priv_flags & IFF_MACSEC; in netif_is_macsec()
4980 return dev->priv_flags & IFF_MACVLAN; in netif_is_macvlan()
4985 return dev->priv_flags & IFF_MACVLAN_PORT; in netif_is_macvlan_port()
4990 return dev->flags & IFF_MASTER && dev->priv_flags & IFF_BONDING; in netif_is_bond_master()
4995 return dev->flags & IFF_SLAVE && dev->priv_flags & IFF_BONDING; in netif_is_bond_slave()
5000 return dev->priv_flags & IFF_SUPP_NOFCS; in netif_supports_nofcs()
5005 return dev->priv_flags & IFF_L3MDEV_RX_HANDLER; in netif_has_l3_rx_handler()
5010 return dev->priv_flags & IFF_L3MDEV_MASTER; in netif_is_l3_master()
5015 return dev->priv_flags & IFF_L3MDEV_SLAVE; in netif_is_l3_slave()
5020 return dev->priv_flags & IFF_EBRIDGE; in netif_is_bridge_master()
5025 return dev->priv_flags & IFF_BRIDGE_PORT; in netif_is_bridge_port()
5030 return dev->priv_flags & IFF_OPENVSWITCH; in netif_is_ovs_master()
5035 return dev->priv_flags & IFF_OVS_DATAPATH; in netif_is_ovs_port()
5045 return dev->priv_flags & IFF_TEAM; in netif_is_team_master()
5050 return dev->priv_flags & IFF_TEAM_PORT; in netif_is_team_port()
5065 return dev->priv_flags & IFF_RXFH_CONFIGURED; in netif_is_rxfh_configured()
5070 return dev->priv_flags & IFF_FAILOVER; in netif_is_failover()
5075 return dev->priv_flags & IFF_FAILOVER_SLAVE; in netif_is_failover_slave()
5081 dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_XMIT_DST_RELEASE_PERM); in netif_keep_dst()
5099 if (!dev->name[0] || strchr(dev->name, '%')) in netdev_name()
5101 return dev->name; in netdev_name()
5106 return dev->reg_state == NETREG_UNREGISTERING; in netdev_unregistering()
5111 switch (dev->reg_state) { in netdev_reg_state()
5120 WARN_ONCE(1, "%s: unknown reg_state %d\n", dev->name, dev->reg_state); in netdev_reg_state()
5125 MODULE_ALIAS("netdev-" device)
5160 #define PTYPE_HASH_MASK (PTYPE_HASH_SIZE - 1)