/* Calculate maximal size of packet seen by hard_start_xmit routine of this device.
*/ staticinlineunsignedint psched_mtu(conststruct net_device *dev)
{ return READ_ONCE(dev->mtu) + dev->hard_header_len;
}
staticinlinestruct net *qdisc_net(struct Qdisc *q)
{ return dev_net(q->dev_queue->dev);
}
struct tc_mqprio_qopt_offload { /* struct tc_mqprio_qopt must always be the first element */ struct tc_mqprio_qopt qopt; struct netlink_ext_ack *extack;
u16 mode;
u16 shaper;
u32 flags;
u64 min_rate[TC_QOPT_MAX_QUEUE];
u64 max_rate[TC_QOPT_MAX_QUEUE]; unsignedlong preemptible_tcs;
};
struct tc_taprio_caps { bool supports_queue_max_sdu:1; bool gate_mask_per_txq:1; /* Device expects lower TXQ numbers to have higher priority over higher * TXQs, regardless of their TC mapping. DO NOT USE FOR NEW DRIVERS, * INSTEAD ENFORCE A PROPER TC:TXQ MAPPING COMING FROM USER SPACE.
*/ bool broken_mqprio:1;
};
/** * struct tc_taprio_qopt_stats - IEEE 802.1Qbv statistics * @window_drops: Frames that were dropped because they were too large to be * transmitted in any of the allotted time windows (open gates) for their * traffic class. * @tx_overruns: Frames still being transmitted by the MAC after the * transmission gate associated with their traffic class has closed. * Equivalent to `12.29.1.1.2 TransmissionOverrun` from 802.1Q-2018.
*/ struct tc_taprio_qopt_stats {
u64 window_drops;
u64 tx_overruns;
};
struct tc_taprio_qopt_queue_stats { int queue; struct tc_taprio_qopt_stats stats;
};
/* Ensure skb_mstamp_ns, which might have been populated with the txtime, is * not mistaken for a software timestamp, because this will otherwise prevent * the dispatch of hardware timestamps to the socket.
*/ staticinlinevoid skb_txtime_consumed(struct sk_buff *skb)
{
skb->tstamp = ktime_set(0, 0);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.