]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
OSPF: Add option to disable OSPFv3-AF
authorOndrej Zajicek (work) <santiago@crfreenet.org>
Tue, 10 Oct 2017 14:07:54 +0000 (16:07 +0200)
committerOndrej Zajicek (work) <santiago@crfreenet.org>
Tue, 10 Oct 2017 14:10:02 +0000 (16:10 +0200)
doc/bird.sgml
proto/ospf/config.Y

index 964895e3d3af902a990e6903d61df229a063f292..1b4b3d6743f58554ebee2e98450fbdb49b51b0f3 100644 (file)
@@ -2866,6 +2866,7 @@ constant definitions and list of neighbors on nonbroadcast networks.
 <code>
 protocol ospf [v2|v3] &lt;name&gt; {
        rfc1583compat &lt;switch&gt;;
+       rfc5838 &lt;switch&gt;;
        instance id &lt;num&gt;;
        stub router &lt;switch&gt;;
        tick &lt;num&gt;;
@@ -2966,15 +2967,23 @@ protocol ospf [v2|v3] &lt;name&gt; {
        This option controls compatibility of routing table calculation with
        <rfc id="1583">. Default value is no.
 
+       <tag><label id="ospf-rfc5838">rfc5838 <m/switch/</tag>
+       Basic OSPFv3 is limited to IPv6 unicast routing. The <rfc id="5838">
+       extension defines support for more address families (IPv4, IPv6, both
+       unicast and multicast). The extension is enabled by default, but can be
+       disabled if necessary, as it restricts the range of available instance
+       IDs. Default value is yes.
+
        <tag><label id="ospf-instance-id">instance id <m/num/</tag>
        When multiple OSPF protocol instances are active on the same links, they
        should use different instance IDs to distinguish their packets. Although
        it could be done on per-interface basis, it is often preferred to set
        one instance ID to whole OSPF domain/topology (e.g., when multiple
        instances are used to represent separate logical topologies on the same
-       physical network). This option specifies the default instance ID for all
-       interfaces of the OSPF instance. Note that this option, if used, must
-       precede interface definitions. Default value is 0.
+       physical network). This option specifies the instance ID for all
+       interfaces of the OSPF instance, but can be overridden by
+       <cf/interface/ option. Default value is 0 unless OSPFv3-AF extended
+       address families are used, see <rfc id="5838"> for that case.
 
        <tag><label id="ospf-stub-router">stub router <M>switch</M></tag>
        This option configures the router to be a stub router, i.e., a router
index 85149ea1edf4f8d749c201bdad8a14c554841f99..98ddf5d070c4c825f3a3db00d1884e2cf63df19d 100644 (file)
@@ -196,7 +196,7 @@ CF_KEYWORDS(ELIGIBLE, POLL, NETWORKS, HIDDEN, VIRTUAL, CHECK, LINK, ONLY, BFD)
 CF_KEYWORDS(RX, BUFFER, LARGE, NORMAL, STUBNET, HIDDEN, SUMMARY, TAG, EXTERNAL)
 CF_KEYWORDS(WAIT, DELAY, LSADB, ECMP, LIMIT, WEIGHT, NSSA, TRANSLATOR, STABILITY)
 CF_KEYWORDS(GLOBAL, LSID, ROUTER, SELF, INSTANCE, REAL, NETMASK, TX, PRIORITY, LENGTH)
-CF_KEYWORDS(SECONDARY, MERGE, LSA, SUPPRESSION, MULTICAST)
+CF_KEYWORDS(SECONDARY, MERGE, LSA, SUPPRESSION, MULTICAST, RFC5838)
 
 %type <ld> lsadb_args
 %type <i> ospf_variant ospf_af_mc nbma_eligible
@@ -250,6 +250,7 @@ ospf_proto_item:
    proto_item
  | ospf_channel { this_proto->net_type = $1->net_type; }
  | RFC1583COMPAT bool { OSPF_CFG->rfc1583 = $2; }
+ | RFC5838 bool { OSPF_CFG->af_ext = $2; if (!ospf_cfg_is_v3()) cf_error("RFC5838 option requires OSPFv3"); }
  | STUB ROUTER bool { OSPF_CFG->stub_router = $3; }
  | ECMP bool { OSPF_CFG->ecmp = $2 ? OSPF_DEFAULT_ECMP_LIMIT : 0; }
  | ECMP bool LIMIT expr { OSPF_CFG->ecmp = $2 ? $4 : 0; }