pppwaw

Untitled

Oct 3rd, 2025
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 26.65 KB | Source Code | 0 0
  1. diff '--color=auto' -bur ../docs.worktrees/v2.17.2/user/configuration/channel-options.md ./user/configuration/channel-options.md
  2. --- ../docs.worktrees/v2.17.2/user/configuration/channel-options.md     2025-10-03 13:14:18.777578290 +0800
  3. +++ ./user/configuration/channel-options.md     2025-10-03 13:05:22.801689426 +0800
  4. @@ -30,10 +30,12 @@
  5.      `none` is for dropping all routes. Default: `all` (except for
  6.      EBGP).
  7.  
  8. -<span id="proto-export" class="code">export *filter*</span>  
  9. +<span id="proto-export" class="code">export \[ in *prefix* \] *filter*</span>  
  10.  This is similar to the `import` keyword, except that it works in
  11. -    the direction from the routing table to the protocol. Default: `none`
  12. -    (except for EBGP and L3VPN).
  13. +    the direction from the routing table to the protocol. If `in` keyword is used,
  14. +    only routes inside the given prefix are exported. Other routes are completely
  15. +    ignored (e.g. no logging and no statistics).
  16. +    Default: `none` (except for EBGP and L3VPN).
  17.  
  18.  <span id="proto-import-keep-filtered" class="code">import keep filtered *switch*</span>  
  19.  Usually, if an import filter rejects a route, the route is forgotten.
  20. @@ -47,7 +49,8 @@
  21.      `roa_check()` or `aspa_check()` operators). In contrast to other
  22.      filter operators, this status for the same route may change as the
  23.      content of ROA and ASPA tables changes. When this option is active, BIRD
  24. -    activates automatic reload of affected channels whenever ROA and ASPA
  25. +    activates automatic reload of the appropriate subset of prefixes imported
  26. +    or exported by the channels whenever ROA and ASPA
  27.      tables are updated (after a short settle time). When disabled, route
  28.      reloads have to be requested manually. The option is ignored if neither
  29.      `roa_check()` nor `aspa_check()` is used in channel filters. Note
  30. @@ -85,6 +88,13 @@
  31.      updates of already accepted routes -- and these details will probably
  32.      change in the future. Default: `off`.
  33.  
  34. +<span id="proto-export-block" class="code">export block *number*</span>  
  35. +Set the minimum amount of routes exported at once when feeding or
  36. +    if \`merge paths\` or \`secondary\` is selected. This affects overall latency.
  37. +    Basically, when your export filters are very expensive, processing
  38. +    the whole block of routes may take too much time. In such cases, you may need to
  39. +        shrink this value to improve responsiveness. Default: `16384`.
  40. +
  41.  This is a trivial example of RIP configured for IPv6 on all interfaces:
  42.  
  43.  
  44. diff '--color=auto' -bur ../docs.worktrees/v2.17.2/user/configuration/global-options.md ./user/configuration/global-options.md
  45. --- ../docs.worktrees/v2.17.2/user/configuration/global-options.md      2025-10-03 13:14:18.777578290 +0800
  46. +++ ./user/configuration/global-options.md      2025-10-03 13:05:22.801689426 +0800
  47. @@ -14,7 +14,7 @@
  48.      ipv6 table
  49.      include "tablename.conf";;
  50.  
  51. -<span id="opt-log" class="code">log "*filename*" \[*limit* "*backup*"\] \| syslog \[name *name*\] \| stderr \| udp *address* \[port *port*\] all\|{ *list of classes* }</span>  
  52. +<span id="opt-log" class="code">log "*filename*" \[*limit* "*backup*"\] \| fixed "*filename*" *size* \| syslog \[name *name*\] \| stderr \| udp *address* \[port *port*\] all\|{ *list of classes* }</span>  
  53.  Set logging of messages having the given class (either `all` or `{
  54.      error|trace [, `*...*`] }` etc.) into selected destination - a file
  55.      specified as a filename string (with optional log rotation information),
  56. @@ -33,7 +33,8 @@
  57.  Logging directly to file supports basic log rotation -- there is an
  58.      optional log file limit and a backup filename, when log file reaches the
  59.      limit, the current log file is renamed to the backup filename and a new
  60. -    log file is created.
  61. +    log file is created. It's also possible to log to a single file behaving
  62. +    as a ring buffer with a fixed size.
  63.  
  64.  You may specify more than one `log` line to establish logging to
  65.      multiple destinations. Default: log everything to the system log, or
  66. @@ -52,7 +53,7 @@
  67.  
  68.  <span id="opt-debug-tables" class="code">debug tables all\|off\|{ states\|routes\|filters\|events \[, *...*\] }</span>  
  69.  Set global defaults of table debugging options.
  70. -    See [debug](#table-debug) in the table section.
  71. +    See [debug](#rtable-debug) in the table section.
  72.      Default: off.
  73.  
  74.  <span id="opt-debug-commands" class="code">debug commands *number*</span>  
  75. @@ -60,9 +61,10 @@
  76.      of connects and disconnects, 2 and higher for logging of all client
  77.      commands). Default: 0.
  78.  
  79. -<span id="opt-debug-latency" class="code">debug latency *switch*</span>  
  80. -Activate tracking of elapsed time for internal events. Recent events
  81. -    could be examined using `dump events` command. Default: off.
  82. +<span id="opt-debug-latency" class="code">debug latency all\|off\|{ ping\|wakeup\|scheduling\|sockets\|events\|timers }</span>  
  83. +Activate tracking of internal scheduler actions. This is a developer
  84. +    and technical support tool for cases when internal events are missed.
  85. +    You should keep this off unless you know what you are doing. Default: off.
  86.  
  87.  <span id="opt-debug-latency-limit" class="code">debug latency limit *time*</span>  
  88.  If `debug latency` is enabled, this option allows to specify a limit
  89. @@ -183,3 +185,65 @@
  90.  
  91.  <span id="opt-eval" class="code">eval *expr*</span>  
  92.  Evaluates given filter expression. It is used by the developers for testing of filters.
  93. +
  94. +### Thread setup
  95. +
  96. +BIRD runs in several threads. There is one main thread, taking care about startup,
  97. +shutdown, (re)configuration, CLI and several protocols which have not yet been updated
  98. +to run in other threads. Then there are several thread groups, running the rest.
  99. +
  100. +Default thread group is `worker`. This group runs (by default) BGP, BMP, MRT,
  101. +Pipe and RPKI. Also the routing table maintenance routines run in these threads.
  102. +For BFD, there is another thread group called
  103. +`express`, with minimal latency, expecting all tasks to be extremely fast.
  104. +The threads are started as soon as some work is required from them, therefore
  105. +if you don't configure BFD, the express thread won't start.
  106. +
  107. +Any configuration of thread groups must be strictly placed before any table
  108. +or protocol configuration, as these depend on the thread group existence.
  109. +
  110. +Thread groups are configured by writing `thread group `*name*` {}` blocks,
  111. +which contain the following options:
  112. +
  113. +<span id="thread-group-threads" class="code">threads *number*</span>  
  114. +Set how many threads should BIRD spawn in this thread group.
  115. +    Every thread can utilize one complete CPU core. You probably want to
  116. +        keep at least one free core for other processes. The maximum feasible
  117. +    thread count heavily depends on the actual workload and must be determined
  118. +    by testing or estimation. Default: 1
  119. +
  120. +<span id="thread-group-default" class="code">default *bool*</span>  
  121. +Mark this thread group as default. There must be exactly one thread group
  122. +    marked as default. Default default thread group: `worker`
  123. +
  124. +<span id="thread-max-latency" class="code">max latency *time*</span>  
  125. +Set maximum latency for the thread group. The group tries to dispatch every
  126. +    event before this time elapses. Setting this too low causes BIRD
  127. +    to spend lots of time on overhead and fill logs with reports.
  128. +    Setting this too high causes BIRD to hold locks for long times.
  129. +    Do not change unless you know what you are doing.
  130. +    Default: 1 s for worker, 10 ms for express.
  131. +
  132. +<span id="thread-min-time" class="code">min time *time*</span>  
  133. +Set minimum awarded loop execution time for the thread group.
  134. +    This is an internal performance tuning knob which may change between
  135. +    minor versions. Do not change unless you know what you are doing.
  136. +    Default: 10 ms for worker, 1 ms for express.
  137. +
  138. +<span id="thread-min-time" class="code">max time *time*</span>  
  139. +Set maximum awarded loop execution time for the thread group. This is
  140. +    an internal performance tuning knob which may change between
  141. +    minor versions. Do not change unless you know what you are doing.
  142. +    Default: 300 ms for worker, 10 ms for express.
  143. +
  144. +<span id="thread-wakeup-time" class="code">wakeup time *time*</span>  
  145. +Set maximum sleep time for the thread group. Every thread will wake up
  146. +    after this time even if no work is requested. This is an internal
  147. +    IO loop knob which may change between minor versions.
  148. +    Do not change unless you know what you are doing.
  149. +    Default: 31415 s for worker, 60 s for express.
  150. +
  151. +There is also a "simple" thread group setting. If you write
  152. +`threads `*number* on top level, it is equivalent to setting
  153. +the worker group thread count to that number, and the express group thread count
  154. +to one. This setting is deprecated and may disappear in some future version.
  155. diff '--color=auto' -bur ../docs.worktrees/v2.17.2/user/configuration/protocol-options.md ./user/configuration/protocol-options.md
  156. --- ../docs.worktrees/v2.17.2/user/configuration/protocol-options.md    2025-10-03 13:14:18.777578290 +0800
  157. +++ ./user/configuration/protocol-options.md    2025-10-03 13:05:22.801689426 +0800
  158. @@ -15,6 +15,13 @@
  159.      command line interface without needing to touch the configuration.
  160.      Disabled protocols are not activated. Default: protocol is enabled.
  161.  
  162. +<span id="proto-restart-limit" class="code">restart time limit *time*</span>  
  163. +Set time limit for subsequent automatic restarts of the protocol.
  164. +        If the protocol hits the limit (with a restart action) before this time
  165. +        elapses from starting the protocol, the protocol is disabled with
  166. +    an error message in the config file. This doesn't apply to manual
  167. +    restarts or reconfiguration. Default: 5 s.
  168. +
  169.  <span id="proto-debug" class="code">debug all\|off\|{ states\|routes\|filters\|interfaces\|events\|packets \[, *...*\] }</span>  
  170.  Set protocol debugging options. If asked, each protocol is capable of
  171.      writing trace messages about its work to the log (with category
  172. @@ -75,6 +82,11 @@
  173.      [channel configuration section](#channel-opts) for channel
  174.      definition.
  175.  
  176. +<span id="proto-thread-group" class="code">thread group *name*</span>  
  177. +Assign this protocol's tasks to this thread group. Ignored in protocols
  178. +    not yet updated for the multithreaded execution model.
  179. +    Default: `worker`.
  180. +
  181.  There are several options that give sense only with certain protocols:
  182.  
  183.  <span id="proto-iface" class="code">interface \[-\] \[ "*mask*" \] \[ *prefix* \] \[, *...*\] \[ { *option*; \[*...*\] } \]</span>  
  184. diff '--color=auto' -bur ../docs.worktrees/v2.17.2/user/configuration/routing-table-options.md ./user/configuration/routing-table-options.md
  185. --- ../docs.worktrees/v2.17.2/user/configuration/routing-table-options.md       2025-10-03 13:14:18.777578290 +0800
  186. +++ ./user/configuration/routing-table-options.md       2025-10-03 13:05:22.805689425 +0800
  187. @@ -5,12 +5,6 @@
  188.  that implicit tables (`master4` and `master6`) can be redefined in order
  189.  to set options.
  190.  
  191. -<span id="table-debug" class="code">debug all\|off\|{ states\|routes\|filters \[, *...*\] }</span>  
  192. -Set table debugging options. Like in [protocol
  193. -debugging](#proto-debug), tables are capable of writing trace
  194. -    messages about its work to the log (with category `trace`).
  195. -    For now, this does nothing, but in version 3, it is used. Default: off.
  196. -
  197.  <span id="rtable-sorted" class="code">sorted *switch*</span>  
  198.  Usually, a routing table just chooses the selected (best) route from a
  199.      list of routes for each network, while keeping remaining routes unsorted.
  200. @@ -41,20 +35,6 @@
  201.      disadvantage is that trie-enabled routing tables require more memory,
  202.      which may be an issue especially in multi-table setups. Default: off.
  203.  
  204. -<span id="rtable-min-settle-time" class="code">min settle time *time*</span>  
  205. -Specify a minimum value of the settle time. When a ROA table changes,
  206. -    automatic [RPKI reload](#proto-rpki-reload) may be
  207. -    triggered, after a short settle time. Minimum settle time is a delay
  208. -    from the last ROA table change to wait for more updates. Default: 1 s.
  209. -
  210. -<span id="rtable-max-settle-time" class="code">max settle time *time*</span>  
  211. -Specify a maximum value of the settle time. When a ROA table changes,
  212. -    automatic [RPKI reload](#proto-rpki-reload) may be
  213. -    triggered, after a short settle time. Maximum settle time is an upper
  214. -    limit to the settle time from the initial ROA table change even if
  215. -    there are consecutive updates gradually renewing the settle time.
  216. -    Default: 20 s.
  217. -
  218.  <span id="rtable-gc-threshold" class="code">gc threshold *number*</span>  
  219.  Specify a minimum amount of removed networks that triggers a garbage
  220.      collection (GC) cycle. Default: 1000.
  221. @@ -69,3 +49,48 @@
  222.      periods. Default: adaptive, based on number of routing tables in the
  223.      configuration. From 10 s (with \<= 25 routing tables) up to 600 s (with
  224.      \>= 1500 routing tables).
  225. +
  226. +<span id="rtable-cork-threshold" class="code">cork threshold *number* *number*</span>  
  227. +Too many pending exports may lead to memory bloating. In such cases,
  228. +        BIRD tries to relieve the memory pressure by pausing some routines until
  229. +        the queue sizes get low enough. This option allows the user to set the
  230. +        thresholds; first value is the low threshold (when to resume), the
  231. +        second one is the high threshold (when to pause). The higher is the
  232. +        threshold, the more memory can get used. In most cases, the defaults
  233. +    should work for you but if you experience memory bloating on import
  234. +    surges, this knob is the first to turn down. Default: 333300 1011010.
  235. +
  236. +<span id="rtable-export-settle-time" class="code">export settle time *time* *time*</span>  
  237. +Minimum and maximum settle times, respectively, for export announcements.
  238. +    When multiple routes are changing, this mechanism waits for the changes
  239. +    to settle before waking up sleeping export threads but if the changes are coming
  240. +    steadily, BIRD isn't waiting forever; at most the maximum time.
  241. +    Default values: `1 ms 100 ms`. You have to always provide both values.
  242. +
  243. +<span id="rtable-route-refresh-export-settle-time" class="code">route refresh export settle time *time* *time*</span>  
  244. +Minimum and maximum settle times, respectively, for export announcements
  245. +    (the same as above), valid when any channel is currently doing a route refresh.
  246. +    This serves a purpose of even more aggresive change bundling, knowing that there
  247. +    is some active process generating changes in a fast pace. If you don't want
  248. +    this feature, set this to the same values as [export settle
  249. +time](#rtable-export-settle-time).
  250. +    Default values: `100 ms 3 s`.
  251. +
  252. +<span id="rtable-digest-settle-time" class="code">digest settle time *time* *time*</span>  
  253. +Minimum and maximum settle times, respectively, for table change digests.
  254. +    This settle time applies to ROA table changes where a trie is generated
  255. +    containing all changed ROAs to automatically reload depending channels.
  256. +    Default values: `1 s 20 s`.
  257. +
  258. +<span id="rtable-debug" class="code">debug all\|off\|{ states\|routes\|events \[, *...*\] }</span>  
  259. +Set table debugging options. Each table can write some trace messages
  260. +    into log with category `trace`. You can request `all` trace messages
  261. +    or select some types: `states` for table state changes and auxiliary
  262. +    processes, `routes` for auxiliary route notifications (next hop update,
  263. +        flowspec revalidation) and `events` for more detailed auxiliary routine
  264. +    debug. See also [channel debugging option](#channel-debug).
  265. +    Default: off.
  266. +
  267. +<span id="proto-thread-group" class="code">thread group *name*</span>  
  268. +Assign this table's maintenance tasks to this thread group.
  269. +    Default: `worker`.
  270. diff '--color=auto' -bur ../docs.worktrees/v2.17.2/user/filters/control-structures.md ./user/filters/control-structures.md
  271. --- ../docs.worktrees/v2.17.2/user/filters/control-structures.md        2025-10-03 13:14:18.777578290 +0800
  272. +++ ./user/filters/control-structures.md        2025-10-03 13:05:22.805689425 +0800
  273. @@ -23,10 +23,10 @@
  274.  a set, while the *set_body_expr* before `:` can be anything (constants,
  275.  intervals, expressions) that could be a part of a set literal. One exception is
  276.  prefix type, which can be used in sets bud not in `case` structure. Multiple
  277. -commands are allowed without `{}` grouping. If *expr* matches one
  278. -of the `:` clauses, statements between it and next `:` statement are
  279. +commands must be grouped by `{}`. If *expr* matches one
  280. +of the `:` clauses, the statement or block after it is
  281.  executed. If *expr* matches neither of the `:` clauses, the
  282. -statements after `else:` are executed.
  283. +statement or block after `else:` is executed.
  284.  
  285.  Here is example that uses `if` and `case` structures:
  286.  
  287. @@ -42,7 +42,7 @@
  288.      }
  289.  
  290.      case arg1 {
  291. -        2: print "two"; print "I can do more commands without {}";
  292. +        2: { print "two"; print "Multiple commands must brace themselves."; }
  293.          3 .. 5: print "three to five";
  294.          else: print "something else";
  295.      }
  296. diff '--color=auto' -bur ../docs.worktrees/v2.17.2/user/filters/route-attributes.md ./user/filters/route-attributes.md
  297. --- ../docs.worktrees/v2.17.2/user/filters/route-attributes.md  2025-10-03 13:14:18.777578290 +0800
  298. +++ ./user/filters/route-attributes.md  2025-10-03 13:05:22.805689425 +0800
  299. @@ -21,17 +21,8 @@
  300.      primary key of the routing table. Read-only. (See the [chapter about
  301.  routes](#routes).)
  302.  
  303. -<span id="rta-scope" class="code">*enum* scope</span>  
  304. -The scope of the route. Possible values: `SCOPE_HOST` for routes
  305. -    local to this host, `SCOPE_LINK` for those specific for a physical
  306. -    link, `SCOPE_SITE` and `SCOPE_ORGANIZATION` for private routes and
  307. -    `SCOPE_UNIVERSE` for globally visible routes. This attribute is not
  308. -    interpreted by BIRD and can be used to mark routes in filters. The
  309. -    default value for new routes is `SCOPE_UNIVERSE`.
  310. -
  311.  <span id="rta-preference" class="code">*int* preference</span>  
  312. -Preference of the route. Valid values are 0-65535. (See the chapter
  313. -    about routing tables.)
  314. +Preference of the route.
  315.  
  316.  <span id="rta-from" class="code">*ip* from</span>  
  317.  The router which the route has originated from.
  318. @@ -72,14 +63,6 @@
  319.      creation/removal. Zero is returned for routes with undefined outgoing
  320.      interfaces. Read-only.
  321.  
  322. -<span id="rta-onlink" class="code">*bool* onlink</span>  
  323. -Onlink flag means that the specified nexthop is accessible on the
  324. -    interface regardless of IP prefixes configured on the interface.
  325. -    The attribute can be used to configure such next hops by first setting
  326. -    `onlink = true` and `ifname`, and then setting `gw`. Possible
  327. -    use case for setting this flag is to automatically build overlay IP-IP
  328. -    networks on linux.
  329. -
  330.  <span id="rta-weight" class="code">*int* weight</span>  
  331.  Multipath weight of route next hops. Valid values are 1-256. Reading
  332.      returns the weight of the first next hop, setting it sets weights of all
  333. diff '--color=auto' -bur ../docs.worktrees/v2.17.2/user/protocols/bfd.md ./user/protocols/bfd.md
  334. --- ../docs.worktrees/v2.17.2/user/protocols/bfd.md     2025-10-03 13:14:18.777578290 +0800
  335. +++ ./user/protocols/bfd.md     2025-10-03 13:05:22.805689425 +0800
  336. @@ -62,6 +62,11 @@
  337.  are allowed as units, practical minimum values are usually in order of tens of
  338.  milliseconds.
  339.  
  340. +Beware, all BFD instances pick up requests and sessions asynchronously, and
  341. +any instance can pick up any matching request, regardless of the order in the
  342. +configuration file. There may be a future update, allowing for strict matching,
  343. +yet for now, we do not have such an option.
  344. +
  345.  
  346.      protocol bfd [<name>] {
  347.          accept [ipv4|ipv6] [direct|multihop];
  348. diff '--color=auto' -bur ../docs.worktrees/v2.17.2/user/protocols/bgp.md ./user/protocols/bgp.md
  349. --- ../docs.worktrees/v2.17.2/user/protocols/bgp.md     2025-10-03 13:14:18.777578290 +0800
  350. +++ ./user/protocols/bgp.md     2025-10-03 13:05:22.809689424 +0800
  351. @@ -894,6 +894,11 @@
  352.  9234</a> as "strict mode" and is used to enforce corresponding
  353.      configuration at your conterpart side. Default: disabled.
  354.  
  355. +<span id="bgp-tx_size_warning" class="code">tx size warning *number*</span>  
  356. +If this option is set, the bgp protocol prints warning when it consumes at least
  357. +        given size of memory. This includes also the memory consumed
  358. +    by any export table. Zero means disabled. Default: disabled.
  359. +
  360.  ### Channel configuration
  361.  
  362.  BGP supports several AFIs and SAFIs over one connection. Every AFI/SAFI
  363. @@ -1030,13 +1035,6 @@
  364.      be examined later by `show route`, and can be used to reconfigure
  365.      import filters without full route refresh. Default: off.
  366.  
  367. -Note that currently the import table breaks routes with recursive
  368. -    nexthops (e.g. ones from IBGP, see [gateway
  369. -recursive](#bgp-gateway)), they are not properly updated after next hop change. For
  370. -    the same reason, it also breaks re-evaluation of flowspec routes with
  371. -    [flowspec validation](#bgp-validate) option enabled on
  372. -    flowspec channels.
  373. -
  374.  <span id="bgp-export-table" class="code">export table *switch*</span>  
  375.  A BGP export table contains all routes sent to given BGP neighbor, after
  376.      application of export filters. It is also called **Adj-RIB-Out** in BGP
  377. @@ -1047,6 +1045,13 @@
  378.      `show route`, and can be used to eliminate unnecessary updates or
  379.      withdraws. Default: off.
  380.  
  381. +<span id="rtable-export-settle-time" class="code">export settle time *time* *time*</span>  
  382. +Minimum and maximum settle times, respectively, for announcements from
  383. +        export table to external readers. These values don't apply for regular TX,
  384. +        just for side channel exports. You will probably never need to change
  385. +        these values.
  386. +    Default values: `10 ms 100 ms`. You have to always provide both values.
  387. +
  388.  <span id="bgp-secondary" class="code">secondary *switch*</span>  
  389.  Usually, if an export filter rejects a selected route, no other route is
  390.      propagated for that network. This option allows to try the next route in
  391. Only in ../docs.worktrees/v2.17.2/user/protocols: perf.md
  392. diff '--color=auto' -bur ../docs.worktrees/v2.17.2/user/protocols/pipe.md ./user/protocols/pipe.md
  393. --- ../docs.worktrees/v2.17.2/user/protocols/pipe.md    2025-10-03 13:14:18.777578290 +0800
  394. +++ ./user/protocols/pipe.md    2025-10-03 13:05:22.809689424 +0800
  395. @@ -36,6 +36,14 @@
  396.  Defines secondary routing table to connect to. The primary one is
  397.      selected by the `table` keyword.
  398.  
  399. +<span id="pipe-max-generation" class="code">max generation *expr*</span>  
  400. +Sets maximal generation of route that may pass through this pipe.
  401. +    The generation value is increased by one by each pipe on its path.
  402. +    Not meeting this requirement causes an error message complaining about
  403. +    an overpiped route. If you have long chains of pipes, you probably want
  404. +    to raise this value; anyway the default of 16 should be enough for even
  405. +    most strange uses. Maximum is 254.
  406. +
  407.  ### Attributes
  408.  
  409.  The Pipe protocol doesn't define any route attributes.
  410. diff '--color=auto' -bur ../docs.worktrees/v2.17.2/user/remote-control/configuration.md ./user/remote-control/configuration.md
  411. --- ../docs.worktrees/v2.17.2/user/remote-control/configuration.md      2025-10-03 13:14:18.781578289 +0800
  412. +++ ./user/remote-control/configuration.md      2025-10-03 13:05:22.809689424 +0800
  413. @@ -5,13 +5,20 @@
  414.  BIRD or the CLI tool connects there instead.
  415.  
  416.  It's also possible to configure additional remote control sockets in the
  417. -configuration file by `cli "name";` and you can open how many
  418. +configuration file by `cli "name" { <m`options/ };/ and you can open how many
  419.  sockets you wish. There are no checks whether the user configured the same
  420.  socket multiple times and BIRD may behave weirdly if this happens. On shutdown,
  421.  the additional sockets get removed immediately and only the main socket stays
  422. -until the very end.
  423. +until the very end. If there are no options, the braces may be omitted.
  424.  
  425. -The remote control socket can be also set as restricted by
  426. -`cli "name" { restrict; };` instead of sending the `restrict` command
  427. -after connecting. The user may still overload the daemon by requesting insanely
  428. -complex filters so you shouldn't expose this socket to public anyway.
  429. +Options:
  430. +
  431. +<span id="cli-conf-restrict" class="code">restrict</span>  
  432. +Set the socket to be restricted as if the user always sent the
  433. +    `restrict` command after connecting. The user may still overload
  434. +    the daemon by requesting insanely complex filters so you shouldn't
  435. +    expose this socket to public even if restricted.
  436. +
  437. +<span id="cli-conf-v2-attributes" class="code">v2 attributes</span>  
  438. +Display the names and composition of route attributes the same way as BIRD 2 does.
  439. +    This is a compatibility option for easier transition from BIRD 2 to BIRD 3.
  440. diff '--color=auto' -bur ../docs.worktrees/v2.17.2/user/remote-control/usage.md ./user/remote-control/usage.md
  441. --- ../docs.worktrees/v2.17.2/user/remote-control/usage.md      2025-10-03 13:14:18.781578289 +0800
  442. +++ ./user/remote-control/usage.md      2025-10-03 13:05:22.809689424 +0800
  443. @@ -18,6 +18,10 @@
  444.      and protocol status, possibly giving verbose information, if `all` is
  445.      specified.
  446.  
  447. +<span id="cli-reload-bgp" class="code">reload bgp \[in\|out\] \[*name*\]</span>  
  448. +Manually request (in) or send (out) route refresh (or both) on the
  449. +        given BGP protocol(s).
  450. +
  451.  <span id="cli-show-ospf-iface" class="code">show ospf interface \[*name*\] \["*interface*"\]</span>  
  452.  Show detailed information about OSPF interfaces.
  453.  
  454. @@ -156,7 +160,7 @@
  455.  Enable, disable or restart a given protocol instance, instances matching
  456.      the *pattern* or `all` instances.
  457.  
  458. -<span id="cli-reload" class="code">reload \[in\|out\] *name*\|"*pattern*"\|all</span>  
  459. +<span id="cli-reload" class="code">reload filters \[in\|out\] (*name*\|"*pattern*"\|all) \[partial prefix\]</span>  
  460.  Reload a given protocol instance, that means re-import routes from the
  461.      protocol instance and re-export preferred routes to the instance. If
  462.      `in` or `out` options are used, the command is restricted to one
  463. @@ -167,6 +171,9 @@
  464.      propagates the old set of routes. For example when `configure soft`
  465.      command was used to change filters.
  466.  
  467. +If `partial prefix` option is used, only corresponding routes are reloaded.
  468. +    Protocol BGP does partial reload only if it has import table enabled, otherwise partial reload for BGP is refused.
  469. +
  470.  Re-export always succeeds, but re-import is protocol-dependent and might
  471.      fail (for example, if BGP neighbor does not support route-refresh
  472.      extension). In that case, re-export is also skipped. Note that for the
  473.                                                                            
Advertisement
Add Comment
Please, Sign In to add comment