1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linu 1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 2 2 3 name: netdev 3 name: netdev 4 4 5 doc: 5 doc: 6 netdev configuration over generic netlink. 6 netdev configuration over generic netlink. 7 7 8 definitions: 8 definitions: 9 - 9 - 10 type: flags 10 type: flags 11 name: xdp-act 11 name: xdp-act 12 render-max: true 12 render-max: true 13 entries: 13 entries: 14 - 14 - 15 name: basic 15 name: basic 16 doc: 16 doc: 17 XDP features set supported by all dr 17 XDP features set supported by all drivers 18 (XDP_ABORTED, XDP_DROP, XDP_PASS, XD 18 (XDP_ABORTED, XDP_DROP, XDP_PASS, XDP_TX) 19 - 19 - 20 name: redirect 20 name: redirect 21 doc: 21 doc: 22 The netdev supports XDP_REDIRECT 22 The netdev supports XDP_REDIRECT 23 - 23 - 24 name: ndo-xmit 24 name: ndo-xmit 25 doc: 25 doc: 26 This feature informs if netdev imple 26 This feature informs if netdev implements ndo_xdp_xmit callback. 27 - 27 - 28 name: xsk-zerocopy 28 name: xsk-zerocopy 29 doc: 29 doc: 30 This feature informs if netdev suppo 30 This feature informs if netdev supports AF_XDP in zero copy mode. 31 - 31 - 32 name: hw-offload 32 name: hw-offload 33 doc: 33 doc: 34 This feature informs if netdev suppor 34 This feature informs if netdev supports XDP hw offloading. 35 - 35 - 36 name: rx-sg 36 name: rx-sg 37 doc: 37 doc: 38 This feature informs if netdev imple 38 This feature informs if netdev implements non-linear XDP buffer 39 support in the driver napi callback. 39 support in the driver napi callback. 40 - 40 - 41 name: ndo-xmit-sg 41 name: ndo-xmit-sg 42 doc: 42 doc: 43 This feature informs if netdev imple 43 This feature informs if netdev implements non-linear XDP buffer 44 support in ndo_xdp_xmit callback. 44 support in ndo_xdp_xmit callback. 45 - << 46 type: flags << 47 name: xdp-rx-metadata << 48 entries: << 49 - << 50 name: timestamp << 51 doc: << 52 Device is capable of exposing receiv << 53 - << 54 name: hash << 55 doc: << 56 Device is capable of exposing receiv << 57 - << 58 name: vlan-tag << 59 doc: << 60 Device is capable of exposing receiv << 61 - << 62 type: flags << 63 name: xsk-flags << 64 entries: << 65 - << 66 name: tx-timestamp << 67 doc: << 68 HW timestamping egress packets is su << 69 - << 70 name: tx-checksum << 71 doc: << 72 L3 checksum HW offload is supported << 73 - << 74 name: queue-type << 75 type: enum << 76 entries: [ rx, tx ] << 77 - << 78 name: qstats-scope << 79 type: flags << 80 entries: [ queue ] << 81 45 82 attribute-sets: 46 attribute-sets: 83 - 47 - 84 name: dev 48 name: dev 85 attributes: 49 attributes: 86 - 50 - 87 name: ifindex 51 name: ifindex 88 doc: netdev ifindex 52 doc: netdev ifindex 89 type: u32 53 type: u32 90 checks: 54 checks: 91 min: 1 55 min: 1 92 - 56 - 93 name: pad 57 name: pad 94 type: pad 58 type: pad 95 - 59 - 96 name: xdp-features 60 name: xdp-features 97 doc: Bitmask of enabled xdp-features. 61 doc: Bitmask of enabled xdp-features. 98 type: u64 62 type: u64 99 enum: xdp-act 63 enum: xdp-act >> 64 enum-as-flags: true 100 - 65 - 101 name: xdp-zc-max-segs 66 name: xdp-zc-max-segs 102 doc: max fragment count supported by Z 67 doc: max fragment count supported by ZC driver 103 type: u32 68 type: u32 104 checks: 69 checks: 105 min: 1 70 min: 1 106 - << 107 name: xdp-rx-metadata-features << 108 doc: Bitmask of supported XDP receive << 109 See Documentation/networking/xdp- << 110 type: u64 << 111 enum: xdp-rx-metadata << 112 - << 113 name: xsk-features << 114 doc: Bitmask of enabled AF_XDP feature << 115 type: u64 << 116 enum: xsk-flags << 117 - << 118 name: page-pool << 119 attributes: << 120 - << 121 name: id << 122 doc: Unique ID of a Page Pool instance << 123 type: uint << 124 checks: << 125 min: 1 << 126 max: u32-max << 127 - << 128 name: ifindex << 129 doc: | << 130 ifindex of the netdev to which the p << 131 May be reported as 0 if the page poo << 132 which got destroyed already (page po << 133 because they wait for all memory to << 134 type: u32 << 135 checks: << 136 min: 1 << 137 max: s32-max << 138 - << 139 name: napi-id << 140 doc: Id of NAPI using this Page Pool i << 141 type: uint << 142 checks: << 143 min: 1 << 144 max: u32-max << 145 - << 146 name: inflight << 147 type: uint << 148 doc: | << 149 Number of outstanding references to << 150 but yet to be freed pages). Allocate << 151 socket receive queues, driver receiv << 152 ring, the page pool cache, etc. << 153 - << 154 name: inflight-mem << 155 type: uint << 156 doc: | << 157 Amount of memory held by inflight pa << 158 - << 159 name: detach-time << 160 type: uint << 161 doc: | << 162 Seconds in CLOCK_BOOTTIME of when Pa << 163 the driver. Once detached Page Pool << 164 allocate memory. << 165 Page Pools wait for all the memory a << 166 before truly disappearing. "Detached << 167 "re-attached", they are just waiting << 168 Attribute is absent if Page Pool has << 169 can still be used to allocate new me << 170 - << 171 name: dmabuf << 172 doc: ID of the dmabuf this page-pool i << 173 type: u32 << 174 - << 175 name: page-pool-info << 176 subset-of: page-pool << 177 attributes: << 178 - << 179 name: id << 180 - << 181 name: ifindex << 182 - << 183 name: page-pool-stats << 184 doc: | << 185 Page pool statistics, see docs for struc << 186 for information about individual statist << 187 attributes: << 188 - << 189 name: info << 190 doc: Page pool identifying information << 191 type: nest << 192 nested-attributes: page-pool-info << 193 - << 194 name: alloc-fast << 195 type: uint << 196 value: 8 # reserve some attr ids in ca << 197 - << 198 name: alloc-slow << 199 type: uint << 200 - << 201 name: alloc-slow-high-order << 202 type: uint << 203 - << 204 name: alloc-empty << 205 type: uint << 206 - << 207 name: alloc-refill << 208 type: uint << 209 - << 210 name: alloc-waive << 211 type: uint << 212 - << 213 name: recycle-cached << 214 type: uint << 215 - << 216 name: recycle-cache-full << 217 type: uint << 218 - << 219 name: recycle-ring << 220 type: uint << 221 - << 222 name: recycle-ring-full << 223 type: uint << 224 - << 225 name: recycle-released-refcnt << 226 type: uint << 227 << 228 - << 229 name: napi << 230 attributes: << 231 - << 232 name: ifindex << 233 doc: ifindex of the netdevice to which << 234 type: u32 << 235 checks: << 236 min: 1 << 237 - << 238 name: id << 239 doc: ID of the NAPI instance. << 240 type: u32 << 241 - << 242 name: irq << 243 doc: The associated interrupt vector n << 244 type: u32 << 245 - << 246 name: pid << 247 doc: PID of the napi thread, if NAPI i << 248 threaded mode. If NAPI is not in << 249 softirq context), the attribute w << 250 type: u32 << 251 - << 252 name: queue << 253 attributes: << 254 - << 255 name: id << 256 doc: Queue index; most queue types are << 257 indexes starting at 0 and ending << 258 are scoped to an interface and qu << 259 type: u32 << 260 - << 261 name: ifindex << 262 doc: ifindex of the netdevice to which << 263 type: u32 << 264 checks: << 265 min: 1 << 266 - << 267 name: type << 268 doc: Queue type as rx, tx. Each queue << 269 type: u32 << 270 enum: queue-type << 271 - << 272 name: napi-id << 273 doc: ID of the NAPI instance which ser << 274 type: u32 << 275 - << 276 name: dmabuf << 277 doc: ID of the dmabuf attached to this << 278 type: u32 << 279 << 280 - << 281 name: qstats << 282 doc: | << 283 Get device statistics, scoped to a devic << 284 These statistics extend (and partially d << 285 in struct rtnl_link_stats64. << 286 Value of the `scope` attribute determine << 287 aggregated. When aggregated for the enti << 288 represent the total number of events sin << 289 the device (i.e. not a reconfiguration l << 290 When reported per-queue, however, the st << 291 up to the total number of events, will o << 292 active objects, and will likely report t << 293 reconfiguration. << 294 attributes: << 295 - << 296 name: ifindex << 297 doc: ifindex of the netdevice to which << 298 type: u32 << 299 checks: << 300 min: 1 << 301 - << 302 name: queue-type << 303 doc: Queue type as rx, tx, for queue-i << 304 type: u32 << 305 enum: queue-type << 306 - << 307 name: queue-id << 308 doc: Queue ID, if stats are scoped to << 309 type: u32 << 310 - << 311 name: scope << 312 doc: | << 313 What object type should be used to i << 314 type: uint << 315 enum: qstats-scope << 316 - << 317 name: rx-packets << 318 doc: | << 319 Number of wire packets successfully << 320 For drivers supporting XDP, XDP is c << 321 of the stack, so packets consumed by << 322 type: uint << 323 value: 8 # reserve some attr ids in ca << 324 - << 325 name: rx-bytes << 326 doc: Successfully received bytes, see << 327 type: uint << 328 - << 329 name: tx-packets << 330 doc: | << 331 Number of wire packets successfully << 332 successfully sent once it is in devi << 333 the device has issued a DMA completi << 334 type: uint << 335 - << 336 name: tx-bytes << 337 doc: Successfully sent bytes, see `tx- << 338 type: uint << 339 - << 340 name: rx-alloc-fail << 341 doc: | << 342 Number of times skb or buffer alloca << 343 Allocation failure may, or may not r << 344 on driver implementation and whether << 345 type: uint << 346 - << 347 name: rx-hw-drops << 348 doc: | << 349 Number of all packets which entered << 350 including but not limited to: packet << 351 space, processing errors, explicit o << 352 filters. << 353 type: uint << 354 - << 355 name: rx-hw-drop-overruns << 356 doc: | << 357 Number of packets dropped due to tra << 358 buffer space, host descriptors etc. << 359 type: uint << 360 - << 361 name: rx-csum-complete << 362 doc: Number of packets that were marke << 363 type: uint << 364 - << 365 name: rx-csum-unnecessary << 366 doc: Number of packets that were marke << 367 type: uint << 368 - << 369 name: rx-csum-none << 370 doc: Number of packets that were not c << 371 type: uint << 372 - << 373 name: rx-csum-bad << 374 doc: | << 375 Number of packets with bad checksum. << 376 but still delivered to the stack. << 377 type: uint << 378 - << 379 name: rx-hw-gro-packets << 380 doc: | << 381 Number of packets that were coalesce << 382 Counts only packets coalesced with t << 383 LRO-coalesced packets are not counte << 384 type: uint << 385 - << 386 name: rx-hw-gro-bytes << 387 doc: See `rx-hw-gro-packets`. << 388 type: uint << 389 - << 390 name: rx-hw-gro-wire-packets << 391 doc: | << 392 Number of packets that were coalesce << 393 netdevice feature. LRO-coalesced pac << 394 type: uint << 395 - << 396 name: rx-hw-gro-wire-bytes << 397 doc: See `rx-hw-gro-wire-packets`. << 398 type: uint << 399 - << 400 name: rx-hw-drop-ratelimits << 401 doc: | << 402 Number of the packets dropped by the << 403 packets bitrate exceeding the device << 404 type: uint << 405 - << 406 name: tx-hw-drops << 407 doc: | << 408 Number of packets that arrived at th << 409 encompassing packets dropped for rea << 410 well as those affected by explicitly << 411 filtering criteria. << 412 type: uint << 413 - << 414 name: tx-hw-drop-errors << 415 doc: Number of packets dropped because << 416 type: uint << 417 - << 418 name: tx-csum-none << 419 doc: | << 420 Number of packets that did not requi << 421 checksum. << 422 type: uint << 423 - << 424 name: tx-needs-csum << 425 doc: | << 426 Number of packets that required the << 427 type: uint << 428 - << 429 name: tx-hw-gso-packets << 430 doc: | << 431 Number of packets that necessitated << 432 by the device. << 433 type: uint << 434 - << 435 name: tx-hw-gso-bytes << 436 doc: See `tx-hw-gso-packets`. << 437 type: uint << 438 - << 439 name: tx-hw-gso-wire-packets << 440 doc: | << 441 Number of wire-sized packets generat << 442 `tx-hw-gso-packets` << 443 type: uint << 444 - << 445 name: tx-hw-gso-wire-bytes << 446 doc: See `tx-hw-gso-wire-packets`. << 447 type: uint << 448 - << 449 name: tx-hw-drop-ratelimits << 450 doc: | << 451 Number of the packets dropped by the << 452 packets bitrate exceeding the device << 453 type: uint << 454 - << 455 name: tx-stop << 456 doc: | << 457 Number of times driver paused accept << 458 from the stack to this queue, becaus << 459 Note that if BQL is supported and en << 460 the networking stack will avoid queu << 461 type: uint << 462 - << 463 name: tx-wake << 464 doc: | << 465 Number of times driver re-started ac << 466 requests to this queue from the stac << 467 type: uint << 468 - << 469 name: queue-id << 470 subset-of: queue << 471 attributes: << 472 - << 473 name: id << 474 - << 475 name: type << 476 - << 477 name: dmabuf << 478 attributes: << 479 - << 480 name: ifindex << 481 doc: netdev ifindex to bind the dmabuf << 482 type: u32 << 483 checks: << 484 min: 1 << 485 - << 486 name: queues << 487 doc: receive queues to bind the dmabuf << 488 type: nest << 489 nested-attributes: queue-id << 490 multi-attr: true << 491 - << 492 name: fd << 493 doc: dmabuf file descriptor to bind. << 494 type: u32 << 495 - << 496 name: id << 497 doc: id of the dmabuf binding << 498 type: u32 << 499 checks: << 500 min: 1 << 501 71 502 operations: 72 operations: 503 list: 73 list: 504 - 74 - 505 name: dev-get 75 name: dev-get 506 doc: Get / dump information about a netd 76 doc: Get / dump information about a netdev. 507 attribute-set: dev 77 attribute-set: dev 508 do: 78 do: 509 request: 79 request: 510 attributes: 80 attributes: 511 - ifindex 81 - ifindex 512 reply: &dev-all 82 reply: &dev-all 513 attributes: 83 attributes: 514 - ifindex 84 - ifindex 515 - xdp-features 85 - xdp-features 516 - xdp-zc-max-segs 86 - xdp-zc-max-segs 517 - xdp-rx-metadata-features << 518 - xsk-features << 519 dump: 87 dump: 520 reply: *dev-all 88 reply: *dev-all 521 - 89 - 522 name: dev-add-ntf 90 name: dev-add-ntf 523 doc: Notification about device appearing 91 doc: Notification about device appearing. 524 notify: dev-get 92 notify: dev-get 525 mcgrp: mgmt 93 mcgrp: mgmt 526 - 94 - 527 name: dev-del-ntf 95 name: dev-del-ntf 528 doc: Notification about device disappear 96 doc: Notification about device disappearing. 529 notify: dev-get 97 notify: dev-get 530 mcgrp: mgmt 98 mcgrp: mgmt 531 - 99 - 532 name: dev-change-ntf 100 name: dev-change-ntf 533 doc: Notification about device configura 101 doc: Notification about device configuration being changed. 534 notify: dev-get 102 notify: dev-get 535 mcgrp: mgmt 103 mcgrp: mgmt 536 - << 537 name: page-pool-get << 538 doc: | << 539 Get / dump information about Page Pool << 540 (Only Page Pools associated with a net << 541 attribute-set: page-pool << 542 do: << 543 request: << 544 attributes: << 545 - id << 546 reply: &pp-reply << 547 attributes: << 548 - id << 549 - ifindex << 550 - napi-id << 551 - inflight << 552 - inflight-mem << 553 - detach-time << 554 - dmabuf << 555 dump: << 556 reply: *pp-reply << 557 config-cond: page-pool << 558 - << 559 name: page-pool-add-ntf << 560 doc: Notification about page pool appear << 561 notify: page-pool-get << 562 mcgrp: page-pool << 563 config-cond: page-pool << 564 - << 565 name: page-pool-del-ntf << 566 doc: Notification about page pool disapp << 567 notify: page-pool-get << 568 mcgrp: page-pool << 569 config-cond: page-pool << 570 - << 571 name: page-pool-change-ntf << 572 doc: Notification about page pool config << 573 notify: page-pool-get << 574 mcgrp: page-pool << 575 config-cond: page-pool << 576 - << 577 name: page-pool-stats-get << 578 doc: Get page pool statistics. << 579 attribute-set: page-pool-stats << 580 do: << 581 request: << 582 attributes: << 583 - info << 584 reply: &pp-stats-reply << 585 attributes: << 586 - info << 587 - alloc-fast << 588 - alloc-slow << 589 - alloc-slow-high-order << 590 - alloc-empty << 591 - alloc-refill << 592 - alloc-waive << 593 - recycle-cached << 594 - recycle-cache-full << 595 - recycle-ring << 596 - recycle-ring-full << 597 - recycle-released-refcnt << 598 dump: << 599 reply: *pp-stats-reply << 600 config-cond: page-pool-stats << 601 - << 602 name: queue-get << 603 doc: Get queue information from the kern << 604 Only configured queues will be repo << 605 hardware queues). << 606 attribute-set: queue << 607 do: << 608 request: << 609 attributes: << 610 - ifindex << 611 - type << 612 - id << 613 reply: &queue-get-op << 614 attributes: << 615 - id << 616 - type << 617 - napi-id << 618 - ifindex << 619 - dmabuf << 620 dump: << 621 request: << 622 attributes: << 623 - ifindex << 624 reply: *queue-get-op << 625 - << 626 name: napi-get << 627 doc: Get information about NAPI instance << 628 attribute-set: napi << 629 do: << 630 request: << 631 attributes: << 632 - id << 633 reply: &napi-get-op << 634 attributes: << 635 - id << 636 - ifindex << 637 - irq << 638 - pid << 639 dump: << 640 request: << 641 attributes: << 642 - ifindex << 643 reply: *napi-get-op << 644 - << 645 name: qstats-get << 646 doc: | << 647 Get / dump fine grained statistics. Wh << 648 depends on the device and the driver, << 649 software counters per-queue. << 650 attribute-set: qstats << 651 dump: << 652 request: << 653 attributes: << 654 - ifindex << 655 - scope << 656 reply: << 657 attributes: << 658 - ifindex << 659 - queue-type << 660 - queue-id << 661 - rx-packets << 662 - rx-bytes << 663 - tx-packets << 664 - tx-bytes << 665 - << 666 name: bind-rx << 667 doc: Bind dmabuf to netdev << 668 attribute-set: dmabuf << 669 flags: [ admin-perm ] << 670 do: << 671 request: << 672 attributes: << 673 - ifindex << 674 - fd << 675 - queues << 676 reply: << 677 attributes: << 678 - id << 679 << 680 kernel-family: << 681 headers: [ "linux/list.h"] << 682 sock-priv: struct list_head << 683 104 684 mcast-groups: 105 mcast-groups: 685 list: 106 list: 686 - 107 - 687 name: mgmt 108 name: mgmt 688 - << 689 name: page-pool <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.