]> git.proxmox.com Git - mirror_frr.git/blobdiff - isisd/isis_circuit.h
Merge pull request #5625 from qlyoung/fix-zapi-ipset-name-nullterm
[mirror_frr.git] / isisd / isis_circuit.h
index e83424a4addfd668f5f00d7ac30c2ad8dea98248..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 {
@@ -67,6 +69,11 @@ struct isis_p2p_info {
 
 struct bfd_info;
 
+struct isis_circuit_arg {
+       int level;
+       struct isis_circuit *circuit;
+};
+
 struct isis_circuit {
        int state;
        uint8_t circuit_id;       /* l1/l2 bcast CircuitID */
@@ -81,8 +88,8 @@ 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 */
 
        /* there is no real point in two streams, just for programming kicker */
        int (*rx)(struct isis_circuit *circuit, uint8_t *ssnpa);
@@ -116,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 */
@@ -140,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
 };
@@ -179,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,