for q in queues: if q['id'] == 0: if q['type'] == 'rx':
rx = True if q['type'] == 'tx':
tx = True
ksft_eq(q.get('xsk', None), {},
comment="xsk attr on queue we configured") else:
ksft_not_in('xsk', q,
comment="xsk attr on queue we didn't configure")
@ksft_disruptive def check_down(cfg, nl) -> None: # Check the NAPI IDs before interface goes down and hides them
napis = nl.napi_get({'ifindex': cfg.ifindex}, dump=True)
ip(f"link set dev {cfg.dev['ifname']} down")
defer(ip, f"link set dev {cfg.dev['ifname']} up")
with ksft_raises(NlError) as cm:
nl.queue_get({'ifindex': cfg.ifindex, 'id': 0, 'type': 'rx'})
ksft_eq(cm.exception.nl_msg.error, -errno.ENOENT)
if napis: with ksft_raises(NlError) as cm:
nl.napi_get({'id': napis[0]['id']})
ksft_eq(cm.exception.nl_msg.error, -errno.ENOENT)
def main() -> None: with NetDrvEnv(__file__, queue_count=100) as cfg:
ksft_run([get_queues, addremove_queues, check_down, check_xsk],
args=(cfg, NetdevFamily()))
ksft_exit()
if __name__ == "__main__":
main()
Messung V0.5
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet)
¤
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.