at v5.1 688 lines 17 kB view raw
1/* SPDX-License-Identifier: MIT */ 2/* Copyright (C) 2016-2019 B.A.T.M.A.N. contributors: 3 * 4 * Matthias Schiffer 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a 7 * copy of this software and associated documentation files (the "Software"), 8 * to deal in the Software without restriction, including without limitation 9 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 * and/or sell copies of the Software, and to permit persons to whom the 11 * Software is furnished to do so, subject to the following conditions: 12 * 13 * The above copyright notice and this permission notice shall be included in 14 * all copies or substantial portions of the Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 * DEALINGS IN THE SOFTWARE. 23 */ 24 25#ifndef _UAPI_LINUX_BATMAN_ADV_H_ 26#define _UAPI_LINUX_BATMAN_ADV_H_ 27 28#define BATADV_NL_NAME "batadv" 29 30#define BATADV_NL_MCAST_GROUP_CONFIG "config" 31#define BATADV_NL_MCAST_GROUP_TPMETER "tpmeter" 32 33/** 34 * enum batadv_tt_client_flags - TT client specific flags 35 * 36 * Bits from 0 to 7 are called _remote flags_ because they are sent on the wire. 37 * Bits from 8 to 15 are called _local flags_ because they are used for local 38 * computations only. 39 * 40 * Bits from 4 to 7 - a subset of remote flags - are ensured to be in sync with 41 * the other nodes in the network. To achieve this goal these flags are included 42 * in the TT CRC computation. 43 */ 44enum batadv_tt_client_flags { 45 /** 46 * @BATADV_TT_CLIENT_DEL: the client has to be deleted from the table 47 */ 48 BATADV_TT_CLIENT_DEL = (1 << 0), 49 50 /** 51 * @BATADV_TT_CLIENT_ROAM: the client roamed to/from another node and 52 * the new update telling its new real location has not been 53 * received/sent yet 54 */ 55 BATADV_TT_CLIENT_ROAM = (1 << 1), 56 57 /** 58 * @BATADV_TT_CLIENT_WIFI: this client is connected through a wifi 59 * interface. This information is used by the "AP Isolation" feature 60 */ 61 BATADV_TT_CLIENT_WIFI = (1 << 4), 62 63 /** 64 * @BATADV_TT_CLIENT_ISOLA: this client is considered "isolated". This 65 * information is used by the Extended Isolation feature 66 */ 67 BATADV_TT_CLIENT_ISOLA = (1 << 5), 68 69 /** 70 * @BATADV_TT_CLIENT_NOPURGE: this client should never be removed from 71 * the table 72 */ 73 BATADV_TT_CLIENT_NOPURGE = (1 << 8), 74 75 /** 76 * @BATADV_TT_CLIENT_NEW: this client has been added to the local table 77 * but has not been announced yet 78 */ 79 BATADV_TT_CLIENT_NEW = (1 << 9), 80 81 /** 82 * @BATADV_TT_CLIENT_PENDING: this client is marked for removal but it 83 * is kept in the table for one more originator interval for consistency 84 * purposes 85 */ 86 BATADV_TT_CLIENT_PENDING = (1 << 10), 87 88 /** 89 * @BATADV_TT_CLIENT_TEMP: this global client has been detected to be 90 * part of the network but no nnode has already announced it 91 */ 92 BATADV_TT_CLIENT_TEMP = (1 << 11), 93}; 94 95/** 96 * enum batadv_mcast_flags_priv - Private, own multicast flags 97 * 98 * These are internal, multicast related flags. Currently they describe certain 99 * multicast related attributes of the segment this originator bridges into the 100 * mesh. 101 * 102 * Those attributes are used to determine the public multicast flags this 103 * originator is going to announce via TT. 104 * 105 * For netlink, if BATADV_MCAST_FLAGS_BRIDGED is unset then all querier 106 * related flags are undefined. 107 */ 108enum batadv_mcast_flags_priv { 109 /** 110 * @BATADV_MCAST_FLAGS_BRIDGED: There is a bridge on top of the mesh 111 * interface. 112 */ 113 BATADV_MCAST_FLAGS_BRIDGED = (1 << 0), 114 115 /** 116 * @BATADV_MCAST_FLAGS_QUERIER_IPV4_EXISTS: Whether an IGMP querier 117 * exists in the mesh 118 */ 119 BATADV_MCAST_FLAGS_QUERIER_IPV4_EXISTS = (1 << 1), 120 121 /** 122 * @BATADV_MCAST_FLAGS_QUERIER_IPV6_EXISTS: Whether an MLD querier 123 * exists in the mesh 124 */ 125 BATADV_MCAST_FLAGS_QUERIER_IPV6_EXISTS = (1 << 2), 126 127 /** 128 * @BATADV_MCAST_FLAGS_QUERIER_IPV4_SHADOWING: If an IGMP querier 129 * exists, whether it is potentially shadowing multicast listeners 130 * (i.e. querier is behind our own bridge segment) 131 */ 132 BATADV_MCAST_FLAGS_QUERIER_IPV4_SHADOWING = (1 << 3), 133 134 /** 135 * @BATADV_MCAST_FLAGS_QUERIER_IPV6_SHADOWING: If an MLD querier 136 * exists, whether it is potentially shadowing multicast listeners 137 * (i.e. querier is behind our own bridge segment) 138 */ 139 BATADV_MCAST_FLAGS_QUERIER_IPV6_SHADOWING = (1 << 4), 140}; 141 142/** 143 * enum batadv_gw_modes - gateway mode of node 144 */ 145enum batadv_gw_modes { 146 /** @BATADV_GW_MODE_OFF: gw mode disabled */ 147 BATADV_GW_MODE_OFF, 148 149 /** @BATADV_GW_MODE_CLIENT: send DHCP requests to gw servers */ 150 BATADV_GW_MODE_CLIENT, 151 152 /** @BATADV_GW_MODE_SERVER: announce itself as gatway server */ 153 BATADV_GW_MODE_SERVER, 154}; 155 156/** 157 * enum batadv_nl_attrs - batman-adv netlink attributes 158 */ 159enum batadv_nl_attrs { 160 /** 161 * @BATADV_ATTR_UNSPEC: unspecified attribute to catch errors 162 */ 163 BATADV_ATTR_UNSPEC, 164 165 /** 166 * @BATADV_ATTR_VERSION: batman-adv version string 167 */ 168 BATADV_ATTR_VERSION, 169 170 /** 171 * @BATADV_ATTR_ALGO_NAME: name of routing algorithm 172 */ 173 BATADV_ATTR_ALGO_NAME, 174 175 /** 176 * @BATADV_ATTR_MESH_IFINDEX: index of the batman-adv interface 177 */ 178 BATADV_ATTR_MESH_IFINDEX, 179 180 /** 181 * @BATADV_ATTR_MESH_IFNAME: name of the batman-adv interface 182 */ 183 BATADV_ATTR_MESH_IFNAME, 184 185 /** 186 * @BATADV_ATTR_MESH_ADDRESS: mac address of the batman-adv interface 187 */ 188 BATADV_ATTR_MESH_ADDRESS, 189 190 /** 191 * @BATADV_ATTR_HARD_IFINDEX: index of the non-batman-adv interface 192 */ 193 BATADV_ATTR_HARD_IFINDEX, 194 195 /** 196 * @BATADV_ATTR_HARD_IFNAME: name of the non-batman-adv interface 197 */ 198 BATADV_ATTR_HARD_IFNAME, 199 200 /** 201 * @BATADV_ATTR_HARD_ADDRESS: mac address of the non-batman-adv 202 * interface 203 */ 204 BATADV_ATTR_HARD_ADDRESS, 205 206 /** 207 * @BATADV_ATTR_ORIG_ADDRESS: originator mac address 208 */ 209 BATADV_ATTR_ORIG_ADDRESS, 210 211 /** 212 * @BATADV_ATTR_TPMETER_RESULT: result of run (see 213 * batadv_tp_meter_status) 214 */ 215 BATADV_ATTR_TPMETER_RESULT, 216 217 /** 218 * @BATADV_ATTR_TPMETER_TEST_TIME: time (msec) the run took 219 */ 220 BATADV_ATTR_TPMETER_TEST_TIME, 221 222 /** 223 * @BATADV_ATTR_TPMETER_BYTES: amount of acked bytes during run 224 */ 225 BATADV_ATTR_TPMETER_BYTES, 226 227 /** 228 * @BATADV_ATTR_TPMETER_COOKIE: session cookie to match tp_meter session 229 */ 230 BATADV_ATTR_TPMETER_COOKIE, 231 232 /** 233 * @BATADV_ATTR_PAD: attribute used for padding for 64-bit alignment 234 */ 235 BATADV_ATTR_PAD, 236 237 /** 238 * @BATADV_ATTR_ACTIVE: Flag indicating if the hard interface is active 239 */ 240 BATADV_ATTR_ACTIVE, 241 242 /** 243 * @BATADV_ATTR_TT_ADDRESS: Client MAC address 244 */ 245 BATADV_ATTR_TT_ADDRESS, 246 247 /** 248 * @BATADV_ATTR_TT_TTVN: Translation table version 249 */ 250 BATADV_ATTR_TT_TTVN, 251 252 /** 253 * @BATADV_ATTR_TT_LAST_TTVN: Previous translation table version 254 */ 255 BATADV_ATTR_TT_LAST_TTVN, 256 257 /** 258 * @BATADV_ATTR_TT_CRC32: CRC32 over translation table 259 */ 260 BATADV_ATTR_TT_CRC32, 261 262 /** 263 * @BATADV_ATTR_TT_VID: VLAN ID 264 */ 265 BATADV_ATTR_TT_VID, 266 267 /** 268 * @BATADV_ATTR_TT_FLAGS: Translation table client flags 269 */ 270 BATADV_ATTR_TT_FLAGS, 271 272 /** 273 * @BATADV_ATTR_FLAG_BEST: Flags indicating entry is the best 274 */ 275 BATADV_ATTR_FLAG_BEST, 276 277 /** 278 * @BATADV_ATTR_LAST_SEEN_MSECS: Time in milliseconds since last seen 279 */ 280 BATADV_ATTR_LAST_SEEN_MSECS, 281 282 /** 283 * @BATADV_ATTR_NEIGH_ADDRESS: Neighbour MAC address 284 */ 285 BATADV_ATTR_NEIGH_ADDRESS, 286 287 /** 288 * @BATADV_ATTR_TQ: TQ to neighbour 289 */ 290 BATADV_ATTR_TQ, 291 292 /** 293 * @BATADV_ATTR_THROUGHPUT: Estimated throughput to Neighbour 294 */ 295 BATADV_ATTR_THROUGHPUT, 296 297 /** 298 * @BATADV_ATTR_BANDWIDTH_UP: Reported uplink bandwidth 299 */ 300 BATADV_ATTR_BANDWIDTH_UP, 301 302 /** 303 * @BATADV_ATTR_BANDWIDTH_DOWN: Reported downlink bandwidth 304 */ 305 BATADV_ATTR_BANDWIDTH_DOWN, 306 307 /** 308 * @BATADV_ATTR_ROUTER: Gateway router MAC address 309 */ 310 BATADV_ATTR_ROUTER, 311 312 /** 313 * @BATADV_ATTR_BLA_OWN: Flag indicating own originator 314 */ 315 BATADV_ATTR_BLA_OWN, 316 317 /** 318 * @BATADV_ATTR_BLA_ADDRESS: Bridge loop avoidance claim MAC address 319 */ 320 BATADV_ATTR_BLA_ADDRESS, 321 322 /** 323 * @BATADV_ATTR_BLA_VID: BLA VLAN ID 324 */ 325 BATADV_ATTR_BLA_VID, 326 327 /** 328 * @BATADV_ATTR_BLA_BACKBONE: BLA gateway originator MAC address 329 */ 330 BATADV_ATTR_BLA_BACKBONE, 331 332 /** 333 * @BATADV_ATTR_BLA_CRC: BLA CRC 334 */ 335 BATADV_ATTR_BLA_CRC, 336 337 /** 338 * @BATADV_ATTR_DAT_CACHE_IP4ADDRESS: Client IPv4 address 339 */ 340 BATADV_ATTR_DAT_CACHE_IP4ADDRESS, 341 342 /** 343 * @BATADV_ATTR_DAT_CACHE_HWADDRESS: Client MAC address 344 */ 345 BATADV_ATTR_DAT_CACHE_HWADDRESS, 346 347 /** 348 * @BATADV_ATTR_DAT_CACHE_VID: VLAN ID 349 */ 350 BATADV_ATTR_DAT_CACHE_VID, 351 352 /** 353 * @BATADV_ATTR_MCAST_FLAGS: Per originator multicast flags 354 */ 355 BATADV_ATTR_MCAST_FLAGS, 356 357 /** 358 * @BATADV_ATTR_MCAST_FLAGS_PRIV: Private, own multicast flags 359 */ 360 BATADV_ATTR_MCAST_FLAGS_PRIV, 361 362 /** 363 * @BATADV_ATTR_VLANID: VLAN id on top of soft interface 364 */ 365 BATADV_ATTR_VLANID, 366 367 /** 368 * @BATADV_ATTR_AGGREGATED_OGMS_ENABLED: whether the batman protocol 369 * messages of the mesh interface shall be aggregated or not. 370 */ 371 BATADV_ATTR_AGGREGATED_OGMS_ENABLED, 372 373 /** 374 * @BATADV_ATTR_AP_ISOLATION_ENABLED: whether the data traffic going 375 * from a wireless client to another wireless client will be silently 376 * dropped. 377 */ 378 BATADV_ATTR_AP_ISOLATION_ENABLED, 379 380 /** 381 * @BATADV_ATTR_ISOLATION_MARK: the isolation mark which is used to 382 * classify clients as "isolated" by the Extended Isolation feature. 383 */ 384 BATADV_ATTR_ISOLATION_MARK, 385 386 /** 387 * @BATADV_ATTR_ISOLATION_MASK: the isolation (bit)mask which is used to 388 * classify clients as "isolated" by the Extended Isolation feature. 389 */ 390 BATADV_ATTR_ISOLATION_MASK, 391 392 /** 393 * @BATADV_ATTR_BONDING_ENABLED: whether the data traffic going through 394 * the mesh will be sent using multiple interfaces at the same time. 395 */ 396 BATADV_ATTR_BONDING_ENABLED, 397 398 /** 399 * @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED: whether the bridge loop 400 * avoidance feature is enabled. This feature detects and avoids loops 401 * between the mesh and devices bridged with the soft interface 402 */ 403 BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED, 404 405 /** 406 * @BATADV_ATTR_DISTRIBUTED_ARP_TABLE_ENABLED: whether the distributed 407 * arp table feature is enabled. This feature uses a distributed hash 408 * table to answer ARP requests without flooding the request through 409 * the whole mesh. 410 */ 411 BATADV_ATTR_DISTRIBUTED_ARP_TABLE_ENABLED, 412 413 /** 414 * @BATADV_ATTR_FRAGMENTATION_ENABLED: whether the data traffic going 415 * through the mesh will be fragmented or silently discarded if the 416 * packet size exceeds the outgoing interface MTU. 417 */ 418 BATADV_ATTR_FRAGMENTATION_ENABLED, 419 420 /** 421 * @BATADV_ATTR_GW_BANDWIDTH_DOWN: defines the download bandwidth which 422 * is propagated by this node if %BATADV_ATTR_GW_BANDWIDTH_MODE was set 423 * to 'server'. 424 */ 425 BATADV_ATTR_GW_BANDWIDTH_DOWN, 426 427 /** 428 * @BATADV_ATTR_GW_BANDWIDTH_UP: defines the upload bandwidth which 429 * is propagated by this node if %BATADV_ATTR_GW_BANDWIDTH_MODE was set 430 * to 'server'. 431 */ 432 BATADV_ATTR_GW_BANDWIDTH_UP, 433 434 /** 435 * @BATADV_ATTR_GW_MODE: defines the state of the gateway features. 436 * Possible values are specified in enum batadv_gw_modes 437 */ 438 BATADV_ATTR_GW_MODE, 439 440 /** 441 * @BATADV_ATTR_GW_SEL_CLASS: defines the selection criteria this node 442 * will use to choose a gateway if gw_mode was set to 'client'. 443 */ 444 BATADV_ATTR_GW_SEL_CLASS, 445 446 /** 447 * @BATADV_ATTR_HOP_PENALTY: defines the penalty which will be applied 448 * to an originator message's tq-field on every hop. 449 */ 450 BATADV_ATTR_HOP_PENALTY, 451 452 /** 453 * @BATADV_ATTR_LOG_LEVEL: bitmask with to define which debug messages 454 * should be send to the debug log/trace ring buffer 455 */ 456 BATADV_ATTR_LOG_LEVEL, 457 458 /** 459 * @BATADV_ATTR_MULTICAST_FORCEFLOOD_ENABLED: whether multicast 460 * optimizations should be replaced by simple broadcast-like flooding 461 * of multicast packets. If set to non-zero then all nodes in the mesh 462 * are going to use classic flooding for any multicast packet with no 463 * optimizations. 464 */ 465 BATADV_ATTR_MULTICAST_FORCEFLOOD_ENABLED, 466 467 /** 468 * @BATADV_ATTR_NETWORK_CODING_ENABLED: whether Network Coding (using 469 * some magic to send fewer wifi packets but still the same content) is 470 * enabled or not. 471 */ 472 BATADV_ATTR_NETWORK_CODING_ENABLED, 473 474 /** 475 * @BATADV_ATTR_ORIG_INTERVAL: defines the interval in milliseconds in 476 * which batman sends its protocol messages. 477 */ 478 BATADV_ATTR_ORIG_INTERVAL, 479 480 /** 481 * @BATADV_ATTR_ELP_INTERVAL: defines the interval in milliseconds in 482 * which batman emits probing packets for neighbor sensing (ELP). 483 */ 484 BATADV_ATTR_ELP_INTERVAL, 485 486 /** 487 * @BATADV_ATTR_THROUGHPUT_OVERRIDE: defines the throughput value to be 488 * used by B.A.T.M.A.N. V when estimating the link throughput using 489 * this interface. If the value is set to 0 then batman-adv will try to 490 * estimate the throughput by itself. 491 */ 492 BATADV_ATTR_THROUGHPUT_OVERRIDE, 493 494 /* add attributes above here, update the policy in netlink.c */ 495 496 /** 497 * @__BATADV_ATTR_AFTER_LAST: internal use 498 */ 499 __BATADV_ATTR_AFTER_LAST, 500 501 /** 502 * @NUM_BATADV_ATTR: total number of batadv_nl_attrs available 503 */ 504 NUM_BATADV_ATTR = __BATADV_ATTR_AFTER_LAST, 505 506 /** 507 * @BATADV_ATTR_MAX: highest attribute number currently defined 508 */ 509 BATADV_ATTR_MAX = __BATADV_ATTR_AFTER_LAST - 1 510}; 511 512/** 513 * enum batadv_nl_commands - supported batman-adv netlink commands 514 */ 515enum batadv_nl_commands { 516 /** 517 * @BATADV_CMD_UNSPEC: unspecified command to catch errors 518 */ 519 BATADV_CMD_UNSPEC, 520 521 /** 522 * @BATADV_CMD_GET_MESH: Get attributes from softif/mesh 523 */ 524 BATADV_CMD_GET_MESH, 525 526 /** 527 * @BATADV_CMD_GET_MESH_INFO: Alias for @BATADV_CMD_GET_MESH 528 */ 529 BATADV_CMD_GET_MESH_INFO = BATADV_CMD_GET_MESH, 530 531 /** 532 * @BATADV_CMD_TP_METER: Start a tp meter session 533 */ 534 BATADV_CMD_TP_METER, 535 536 /** 537 * @BATADV_CMD_TP_METER_CANCEL: Cancel a tp meter session 538 */ 539 BATADV_CMD_TP_METER_CANCEL, 540 541 /** 542 * @BATADV_CMD_GET_ROUTING_ALGOS: Query the list of routing algorithms. 543 */ 544 BATADV_CMD_GET_ROUTING_ALGOS, 545 546 /** 547 * @BATADV_CMD_GET_HARDIF: Get attributes from a hardif of the 548 * current softif 549 */ 550 BATADV_CMD_GET_HARDIF, 551 552 /** 553 * @BATADV_CMD_GET_HARDIFS: Alias for @BATADV_CMD_GET_HARDIF 554 */ 555 BATADV_CMD_GET_HARDIFS = BATADV_CMD_GET_HARDIF, 556 557 /** 558 * @BATADV_CMD_GET_TRANSTABLE_LOCAL: Query list of local translations 559 */ 560 BATADV_CMD_GET_TRANSTABLE_LOCAL, 561 562 /** 563 * @BATADV_CMD_GET_TRANSTABLE_GLOBAL: Query list of global translations 564 */ 565 BATADV_CMD_GET_TRANSTABLE_GLOBAL, 566 567 /** 568 * @BATADV_CMD_GET_ORIGINATORS: Query list of originators 569 */ 570 BATADV_CMD_GET_ORIGINATORS, 571 572 /** 573 * @BATADV_CMD_GET_NEIGHBORS: Query list of neighbours 574 */ 575 BATADV_CMD_GET_NEIGHBORS, 576 577 /** 578 * @BATADV_CMD_GET_GATEWAYS: Query list of gateways 579 */ 580 BATADV_CMD_GET_GATEWAYS, 581 582 /** 583 * @BATADV_CMD_GET_BLA_CLAIM: Query list of bridge loop avoidance claims 584 */ 585 BATADV_CMD_GET_BLA_CLAIM, 586 587 /** 588 * @BATADV_CMD_GET_BLA_BACKBONE: Query list of bridge loop avoidance 589 * backbones 590 */ 591 BATADV_CMD_GET_BLA_BACKBONE, 592 593 /** 594 * @BATADV_CMD_GET_DAT_CACHE: Query list of DAT cache entries 595 */ 596 BATADV_CMD_GET_DAT_CACHE, 597 598 /** 599 * @BATADV_CMD_GET_MCAST_FLAGS: Query list of multicast flags 600 */ 601 BATADV_CMD_GET_MCAST_FLAGS, 602 603 /** 604 * @BATADV_CMD_SET_MESH: Set attributes for softif/mesh 605 */ 606 BATADV_CMD_SET_MESH, 607 608 /** 609 * @BATADV_CMD_SET_HARDIF: Set attributes for hardif of the 610 * current softif 611 */ 612 BATADV_CMD_SET_HARDIF, 613 614 /** 615 * @BATADV_CMD_GET_VLAN: Get attributes from a VLAN of the 616 * current softif 617 */ 618 BATADV_CMD_GET_VLAN, 619 620 /** 621 * @BATADV_CMD_SET_VLAN: Set attributes for VLAN of the 622 * current softif 623 */ 624 BATADV_CMD_SET_VLAN, 625 626 /* add new commands above here */ 627 628 /** 629 * @__BATADV_CMD_AFTER_LAST: internal use 630 */ 631 __BATADV_CMD_AFTER_LAST, 632 633 /** 634 * @BATADV_CMD_MAX: highest used command number 635 */ 636 BATADV_CMD_MAX = __BATADV_CMD_AFTER_LAST - 1 637}; 638 639/** 640 * enum batadv_tp_meter_reason - reason of a tp meter test run stop 641 */ 642enum batadv_tp_meter_reason { 643 /** 644 * @BATADV_TP_REASON_COMPLETE: sender finished tp run 645 */ 646 BATADV_TP_REASON_COMPLETE = 3, 647 648 /** 649 * @BATADV_TP_REASON_CANCEL: sender was stopped during run 650 */ 651 BATADV_TP_REASON_CANCEL = 4, 652 653 /* error status >= 128 */ 654 655 /** 656 * @BATADV_TP_REASON_DST_UNREACHABLE: receiver could not be reached or 657 * didn't answer 658 */ 659 BATADV_TP_REASON_DST_UNREACHABLE = 128, 660 661 /** 662 * @BATADV_TP_REASON_RESEND_LIMIT: (unused) sender retry reached limit 663 */ 664 BATADV_TP_REASON_RESEND_LIMIT = 129, 665 666 /** 667 * @BATADV_TP_REASON_ALREADY_ONGOING: test to or from the same node 668 * already ongoing 669 */ 670 BATADV_TP_REASON_ALREADY_ONGOING = 130, 671 672 /** 673 * @BATADV_TP_REASON_MEMORY_ERROR: test was stopped due to low memory 674 */ 675 BATADV_TP_REASON_MEMORY_ERROR = 131, 676 677 /** 678 * @BATADV_TP_REASON_CANT_SEND: failed to send via outgoing interface 679 */ 680 BATADV_TP_REASON_CANT_SEND = 132, 681 682 /** 683 * @BATADV_TP_REASON_TOO_MANY: too many ongoing sessions 684 */ 685 BATADV_TP_REASON_TOO_MANY = 133, 686}; 687 688#endif /* _UAPI_LINUX_BATMAN_ADV_H_ */