]> git.proxmox.com Git - mirror_frr.git/blobdiff - isisd/isis_circuit.h
zebra: Fix label manager memory leak (#5680)
[mirror_frr.git] / isisd / isis_circuit.h
index 7d7b25b92fd863b5456b7ed07b290c692a72f885..f677d3aded56dbdf80189ebadee2c992555e11e6 100644 (file)
@@ -32,6 +32,8 @@
 #include "isis_constants.h"
 #include "isis_common.h"
 
+DECLARE_HOOK(isis_if_new_hook, (struct interface *ifp), (ifp));
+
 struct isis_lsp;
 
 struct password {
@@ -86,7 +88,6 @@ struct isis_circuit {
        struct thread *t_read;
        struct thread *t_send_csnp[2];
        struct thread *t_send_psnp[2];
-       struct thread *t_send_lsp;
        struct isis_tx_queue *tx_queue;
        struct isis_circuit_arg level_arg[2]; /* used as argument for threads */
 
@@ -122,8 +123,7 @@ struct isis_circuit {
        uint16_t psnp_interval[2];    /* psnp-interval in seconds */
        uint8_t metric[2];
        uint32_t te_metric[2];
-       struct mpls_te_circuit
-               *mtc;   /* Support for MPLS-TE parameters - see isis_te.[c,h] */
+       struct isis_ext_subtlvs *ext; /* Extended parameters (TE + Adj SID */
        int ip_router;  /* Route IP ? */
        int is_passive; /* Is Passive ? */
        struct list *mt_settings;   /* IS-IS MT Settings */
@@ -146,6 +146,13 @@ struct isis_circuit {
        uint32_t
                desig_changes[2]; /* lanLxDesignatedIntermediateSystemChanges */
        uint32_t rej_adjacencies; /* rejectedAdjacencies */
+       /*
+        * Counters as in ietf-isis@2019-09-09.yang
+        */
+       uint32_t id_len_mismatches; /* id-len-mismatch */
+       uint32_t max_area_addr_mismatches; /* max-area-addresses-mismatch */
+       uint32_t auth_type_failures; /*authentication-type-fails */
+       uint32_t auth_failures; /* authentication-fails */
 
        QOBJ_FIELDS
 };
@@ -185,12 +192,14 @@ void isis_circuit_af_set(struct isis_circuit *circuit, bool ip_router,
                         bool ipv6_router);
 ferr_r isis_circuit_passive_set(struct isis_circuit *circuit, bool passive);
 void isis_circuit_is_type_set(struct isis_circuit *circuit, int is_type);
-ferr_r isis_circuit_circ_type_set(struct isis_circuit *circuit, int circ_type);
+void isis_circuit_circ_type_set(struct isis_circuit *circuit, int circ_type);
 
 ferr_r isis_circuit_metric_set(struct isis_circuit *circuit, int level,
                               int metric);
 
 ferr_r isis_circuit_passwd_unset(struct isis_circuit *circuit);
+ferr_r isis_circuit_passwd_set(struct isis_circuit *circuit,
+                              uint8_t passwd_type, const char *passwd);
 ferr_r isis_circuit_passwd_cleartext_set(struct isis_circuit *circuit,
                                         const char *passwd);
 ferr_r isis_circuit_passwd_hmac_md5_set(struct isis_circuit *circuit,