]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/link_state.h
Merge pull request #12798 from donaldsharp/rib_match_multicast
[mirror_frr.git] / lib / link_state.h
index 761e8b6a2771dacb993de39bcec4d3f9510c6b4c..e6a6388ba41334b8f38afade0f19259750a6d603 100644 (file)
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
 /*
  * Link State Database definition - ted.h
  *
@@ -6,25 +7,12 @@
  * Copyright (C) 2020 Orange http://www.orange.com
  *
  * This file is part of Free Range Routing (FRR).
- *
- * FRR is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2, or (at your option) any
- * later version.
- *
- * FRR is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; see the file COPYING; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 #ifndef _FRR_LINK_STATE_H_
 #define _FRR_LINK_STATE_H_
 
+#include "admin_group.h"
 #include "typesafe.h"
 
 #ifdef __cplusplus
@@ -91,7 +79,7 @@ struct ls_node_id {
                        uint8_t level;                  /* ISIS Level */
                        uint8_t padding;
                } iso;
-       } id __attribute__((aligned(8)));
+       } id;
 };
 
 /**
@@ -169,6 +157,7 @@ struct ls_node {
 #define LS_ATTR_ADJ_SID6       0x04000000
 #define LS_ATTR_BCK_ADJ_SID6   0x08000000
 #define LS_ATTR_SRLG           0x10000000
+#define LS_ATTR_EXT_ADM_GRP 0x20000000
 
 /* Link State Attributes */
 struct ls_attributes {
@@ -202,6 +191,7 @@ struct ls_attributes {
                float rsv_bw;           /* Reserved Bandwidth */
                float used_bw;          /* Utilized Bandwidth */
        } extended;
+       struct admin_group ext_admin_group; /* Extended Admin. Group */
 #define ADJ_PRI_IPV4   0
 #define ADJ_BCK_IPV4   1
 #define ADJ_PRI_IPV6   2
@@ -746,7 +736,7 @@ extern void ls_ted_del(struct ls_ted *ted);
  *
  * @param ted  Link State Data Base
  */
-extern void ls_ted_del_all(struct ls_ted *ted);
+extern void ls_ted_del_all(struct ls_ted **ted);
 
 /**
  * Clean Link State Data Base by removing all Vertices, Edges and SubNets marked