PIM6SD.CONF(5)

πŸ“¦ version 0-unstable-2024-12, in nixos 26.05, nixpkgs unstable

πŸ’– NAME πŸ’–

pim6sd.conf β€” bestie, this is the config file for pim6sd, the PIM-SM daemon for IPv6. It’s section 5, File Formats Manual. Slay. ✨


🌸 DESCRIPTION 🌸

Okay so pim6sd.conf is literally a sequence of statements, and each statement is terminated by a semicolon (;). Each statement tells the daemon how to treat an interface, sets some PIM protocol parameters, or asks for some special behavior defined by the protocol. 🫢

Each statement can be built from multiple lines.

Lines beginning with # are comments.

The following statements can be specified in the config file, fr fr:

  • log option... ; β€” tells the daemon which debug messages to print out. Each option usually picks a subset of messages to print. If an option begins with no, that means the set of messages specified by the option will not be printed. For example, all nomld means all messages except MLD-related ones will be printed.

Valid options are:

mld_proto, mld_timer, mld_member, mld, switch, trace, mtrace, traceroute,
timeout, callout, pkt, packets, interfaces, vif, kernel, cache, mfc, k_cache,
k_mfc, rsrr, pim_detail, pim_hello, pim_neighbors, pim_register, registers,
pim_join_prune, pim_j_p, pim_jp, pim_bootstrap, pim_bsr, bsr, bootstrap,
pim_asserts, pim_cand_rp, pim_c_rp, pim_rp, rp, pim_routes, pim_routing,
pim_mrt, pim_timers, pim_rpf, rpf, pim, routes, routing, mrt, routers,
mrouters, neighbors, timers, asserts, and all.
  • reverselookup (yes | no); β€” specifies whether a hostname for an IPv6 address should be resolved on logging. yes means resolve the hostname, no means don’t. By default, a hostname is not resolved.
  • default_phyint_status (disable | enable); β€” tells pim6sd(8) to enable or disable multicast routing when it’s not explicitly configured in a phyint statement. By default, enable is assumed.
  • phyint interface (disable | enable); β€” tells pim6sd(8) to enable or disable multicast routing on the interface. If neither is specified, the default_phyint_status statement determines whether multicast routing is enabled or disabled. Interfaces are specified in the form of "name unit", such as gif0 and ep1.
  • phyint interface [preference preference] [metric metric] ; β€” specifies the preference and/or metric values when sending a PIM assert message on the interface.
  • phyint interface [priority priority] ; β€” specifies the DR-priority value when sending a PIM hello message on the interface. If not specified, the DR-priority value is set to 1.
  • phyint interface [nolistener] ; β€” stops the advertisement of MLD packets on the interface. This option is usually meaningless, but it’s useful when MLD messages are noisy (e.g. when debugging) and there is surely no listener on the interface.
  • phyint interface [llqi n] [robustness r] [query_rsp_interval qri] [query_interval qi] [mld_version ver] ; β€” specifies MLDv2-specific parameters for the given interface.

llqi specifies last-listener-query-interval, and its default value is 1000ms.

robustness is for robustness-variable for the interface, and its default value is 2.

query_rsp_interval and query_interval correspond to query-response-interval and query-interval in MLDv2 Query messages. Their default values are 10000ms (query_rsp_interval) and 125s (query_interval).

mld_version specifies the acceptable version of MLD. For example, if it is configured as 1, then only MLDv1 packets are permitted on this interface. If the argument is any, then any version of MLD (currently v1 and v2) is permitted. If you are going to enable MLDv1-compat-mode under MLDv2, you should specify any, since only MLDv2 packets are permitted if it is configured as 2. Its default value is 1.

  • default_source_preference preference; β€” specifies a default preference value when sending a PIM assert message. Preferences are used by assert elections to determine upstream routers. Currently pim6sd(8) does not have an effective method to obtain preferences and metrics from unicast routing protocols, so you may want to set a default value by hand. The default preference is 1024.
  • default_source_metric metric; β€” specifies a default metric value when sending a PIM assert message. Since pim6sd(8) cannot get an effective metric of unicast routing, it is recommended that preferences be set such that metrics are never consulted. However, default metrics may also be set, and its default value is 1024.
  • granularity second; β€” specifies timer granularity in seconds. The default value is 5.
  • hello_period period coef; β€” period specifies the period in seconds between 2 hello messages. coef is the coefficient used to determine the hello holdtime; the holdtime will be period * coef. The default values of the period and the coefficient are 30 and 3.5, respectively. The default holdtime is 105 seconds as a result.
  • join_prune_period period coef; β€” period specifies the period in seconds between 2 join/prune messages. coef is the coefficient used to determine the join/prune holdtime; the holdtime will be period * coef. The default values of the period and the coefficient are 60 and 3.5, respectively. Consequently, the default holdtime is 210 seconds.
  • data_timeout timer; β€” specifies the time after which (S,G) state for a silent source will be deleted. The default value is 210.
  • register_suppression_timeout interval; β€” interval specifies the interval between receiving a Register-Stop and allowing PIM Register to be sent again. The default value is 60.
  • probe_time timer; β€” timer specifies the time between sending a null Register and the Register-Suppression-Timer expiring, unless it is restarted by receiving a Register-Stop. The default value is 5.
  • assert_timeout interval; β€” interval specifies the interval between the last time an Assert is received and the time at which the assert times out. The default value is 180.
  • cand_rp [interface] [time time] [priority priority] ; β€” specifies to act as a Candidate Rendezvous Point (RP). It is recommended to specify cand_rp only in typical usage. All other parameters are optional and will be set automatically.

If an interface is specified, pim6sd(8) will search for a global address on the specified interface and set the address in Candidate RP Advertisements.

An optional parameter time specifies the interval of two succeeding advertisements in seconds. Its default value is 60. 2.5 * time will be set to Candidate-RP-Advertisement messages.

Another optional parameter priority specifies the priority of the RP. The default value is 0, which means the highest priority.

  • static prefix address ; β€” specifies a static route only for RPF calculation.
  • static_rp prefix address [priority priority] ; β€” specifies a static group-to-RP mapping. This is necessary when there is an IPv6 multicast router that does not understand BSR messages. It cannot be specified with cand_rp or cand_bsr configuration.

BSR function remains working independently of this option, so you can specify static group-to-RP mappings by this option while flooding BSR messages from upstream to downstreams, but you cannot redistribute this static mapping by BSR messages.

If this option and BSR messages provide a different RP for the same group, the one with higher priority (i.e. smaller priority value) is chosen. If their priority is the same, the static one wins.

An optional parameter priority specifies the priority of this static group-to-RP mapping. Its default value is 0 (highest).

  • group_prefix prefix; β€” when acting as a Rendezvous Point (RP), prefix specifies a group prefix that the RP will handle.
  • cand_bootstrap_router [interface] [time time] [priority priority] [masklen masklen] ; β€” specifies to act as a Candidate Bootstrap Router (BSR). It is recommended to specify cand_bootstrap_router only in typical usage. All other parameters are optional and will be set automatically.

If an interface is specified, pim6sd(8) will search for a global address on the specified interface and set the address in Bootstrap messages.

An optional parameter time specifies the interval of two succeeding bootstraps in seconds. Its default value is 60.

Another optional parameter priority specifies the priority of the BSR. The default value is 0, which means the lowest priority.

Hash mask length can also be specified by the masklen parameter. Its value, masklen, must be no less than 0 and no greater than 128.

  • switch_register_threshold rate rate interval interval; β€” specifies the threshold that a Rendezvous Point (RP) switches to a shortest path tree, which is valid only when acting as an RP. rate specifies the threshold in bits per second, and interval specifies the interval of checking the rate in seconds. The default values are 50000 and 20, respectively.
  • switch_data_threshold rate rate interval interval; β€” specifies the threshold that a last hop router switches to a shortest path tree. rate specifies the threshold in bits per second, and interval specifies the interval of checking the rate in seconds. The default values are 50000 and 20, respectively.

πŸŽ€ EXAMPLE πŸŽ€

No cap, here’s the example from the page, verbatim:

# phyint gif0 disable;
# phyint ep0 preference 101;
phyint de0 disable;
#
# followings are for a candidate Rendezvous Point, which should usually
# be disabled.
cand_bootstrap_router;
cand_rp;

πŸ¦‹ SEE ALSO πŸ¦‹

pim6sd(8) β€” that’s the whole see-also situation, bestie. πŸ’…


πŸ‘‘ HISTORY πŸ‘‘

The pim6sd(8) command is developed by Mickael Hoerdt at LSIIT Laboratory. It is based on IPv4 PIM sparse-mode pimd developed at University of Southern California, which has also been derived from mrouted. mrouted is COPYRIGHT 1989 by The Board of Trustees of Leland Stanford Junior University. Iconic lineage, honestly. 🌈


πŸ’€ BUGS πŸ’€

static_rp configuration does not work at RP. So please use the cand_rp command at RP until this bug is fixed. Not me pointing at the bug, but also yes. πŸ™ˆ


Bye bestie πŸ’–βœ¨ β€” this page comes from KAME and is dated Oct 6, 1999. periodt. πŸ’…

πŸ“¦ where this page comes from