]> git.proxmox.com Git - mirror_frr.git/blobdiff - isisd/isis_nb_config.c
Merge pull request #11312 from opensourcerouting/feature/draft-ietf-idr-bfd-subcode
[mirror_frr.git] / isisd / isis_nb_config.c
index de7797813a4262d064edacfff80881502d2d74a1..79b167718b8f5e042c51cbe26e1044a8d2f13fbe 100644 (file)
@@ -393,30 +393,11 @@ int isis_instance_purge_originator_modify(struct nb_cb_modify_args *args)
  */
 int isis_instance_lsp_mtu_modify(struct nb_cb_modify_args *args)
 {
-       struct listnode *node;
-       struct isis_circuit *circuit;
        uint16_t lsp_mtu = yang_dnode_get_uint16(args->dnode, NULL);
        struct isis_area *area;
 
        switch (args->event) {
        case NB_EV_VALIDATE:
-               area = nb_running_get_entry(args->dnode, NULL, false);
-               if (!area)
-                       break;
-               for (ALL_LIST_ELEMENTS_RO(area->circuit_list, node, circuit)) {
-                       if (circuit->state != C_STATE_INIT
-                           && circuit->state != C_STATE_UP)
-                               continue;
-                       if (lsp_mtu > isis_circuit_pdu_size(circuit)) {
-                               snprintf(
-                                       args->errmsg, args->errmsg_len,
-                                       "ISIS area contains circuit %s, which has a maximum PDU size of %zu",
-                                       circuit->interface->name,
-                                       isis_circuit_pdu_size(circuit));
-                               return NB_ERR_VALIDATION;
-                       }
-               }
-               break;
        case NB_EV_PREPARE:
        case NB_EV_ABORT:
                break;
@@ -2552,43 +2533,14 @@ int isis_instance_mpls_ldp_sync_holddown_modify(struct nb_cb_modify_args *args)
  */
 int lib_interface_isis_create(struct nb_cb_create_args *args)
 {
-       struct isis_area *area = NULL;
        struct interface *ifp;
        struct isis_circuit *circuit = NULL;
        const char *area_tag = yang_dnode_get_string(args->dnode, "./area-tag");
-       uint32_t min_mtu, actual_mtu;
 
        switch (args->event) {
        case NB_EV_PREPARE:
        case NB_EV_ABORT:
-               break;
        case NB_EV_VALIDATE:
-               /* check if interface mtu is sufficient. If the area has not
-                * been created yet, assume default MTU for the area
-                */
-               ifp = nb_running_get_entry(args->dnode, NULL, false);
-               /* zebra might not know yet about the MTU - nothing we can do */
-               if (!ifp || ifp->mtu == 0)
-                       break;
-               actual_mtu =
-                       if_is_broadcast(ifp) ? ifp->mtu - LLC_LEN : ifp->mtu;
-
-               area = isis_area_lookup(area_tag, ifp->vrf->vrf_id);
-               if (area)
-                       min_mtu = area->lsp_mtu;
-               else
-#ifndef FABRICD
-                       min_mtu = yang_get_default_uint16(
-                               "/frr-isisd:isis/instance/lsp/mtu");
-#else
-                       min_mtu = DEFAULT_LSP_MTU;
-#endif /* ifndef FABRICD */
-               if (actual_mtu < min_mtu) {
-                       snprintf(args->errmsg, args->errmsg_len,
-                                "Interface %s has MTU %u, minimum MTU for the area is %u",
-                                ifp->name, actual_mtu, min_mtu);
-                       return NB_ERR_VALIDATION;
-               }
                break;
        case NB_EV_APPLY:
                ifp = nb_running_get_entry(args->dnode, NULL, true);
@@ -3118,10 +3070,6 @@ int lib_interface_isis_disable_three_way_handshake_modify(
        return NB_OK;
 }
 
-/*
- * XPath:
- * /frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv4-unicast
- */
 static int lib_interface_isis_multi_topology_common(
        enum nb_event event, const struct lyd_node *dnode, char *errmsg,
        size_t errmsg_len, uint16_t mtid)
@@ -3152,12 +3100,16 @@ static int lib_interface_isis_multi_topology_common(
        return NB_OK;
 }
 
-int lib_interface_isis_multi_topology_ipv4_unicast_modify(
+/*
+ * XPath:
+ * /frr-interface:lib/interface/frr-isisd:isis/multi-topology/standard
+ */
+int lib_interface_isis_multi_topology_standard_modify(
        struct nb_cb_modify_args *args)
 {
        return lib_interface_isis_multi_topology_common(
                args->event, args->dnode, args->errmsg, args->errmsg_len,
-               ISIS_MT_IPV4_UNICAST);
+               ISIS_MT_STANDARD);
 }
 
 /*