summaryrefslogtreecommitdiffstats
path: root/tests/isisd/test_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/isisd/test_common.h')
-rw-r--r--tests/isisd/test_common.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/isisd/test_common.h b/tests/isisd/test_common.h
new file mode 100644
index 0000000..3359a89
--- /dev/null
+++ b/tests/isisd/test_common.h
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2020 NetDEF, Inc.
+ * Renato Westphal
+ *
+ * This program 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 of the License, or (at your option)
+ * any later version.
+ *
+ * This program 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 _COMMON_ISIS_H
+#define _COMMON_ISIS_H
+
+#include "isisd/isisd.h"
+#include "isisd/isis_spf.h"
+#include "isisd/isis_spf_private.h"
+
+#define MAX_HOSTNAME 16
+#define MAX_NETWORKS 8
+#define MAX_ADJACENCIES 8
+#define MAX_NODES 12
+
+#define SRGB_DFTL_LOWER_BOUND 16000
+#define SRGB_DFTL_RANGE_SIZE 8000
+
+struct isis_test_adj {
+ char hostname[MAX_HOSTNAME];
+ uint8_t pseudonode_id;
+ uint32_t metric;
+};
+
+struct isis_test_node {
+ char hostname[MAX_HOSTNAME];
+ uint8_t sysid[ISIS_SYS_ID_LEN];
+ uint8_t pseudonode_id;
+ int level;
+ struct {
+ bool ipv4;
+ bool ipv6;
+ } protocols;
+ const char *router_id;
+ struct {
+ uint32_t lower_bound;
+ uint32_t range_size;
+ } srgb;
+ const char *networks[MAX_NETWORKS + 1];
+ struct isis_test_adj adjacencies[MAX_ADJACENCIES + 1];
+ uint8_t flags;
+};
+#define F_ISIS_TEST_NODE_SR 0x01
+
+struct isis_topology {
+ uint16_t number;
+ struct isis_test_node nodes[MAX_NODES + 1];
+};
+
+/* Prototypes. */
+extern int isis_sock_init(struct isis_circuit *circuit);
+extern const struct isis_test_node *
+test_topology_find_node(const struct isis_topology *topology,
+ const char *hostname, uint8_t pseudonode_id);
+extern const struct isis_topology *
+test_topology_find(struct isis_topology *test_topologies, uint16_t number);
+extern mpls_label_t
+test_topology_node_ldp_label(const struct isis_topology *topology,
+ struct in_addr router_id);
+extern int test_topology_load(const struct isis_topology *topology,
+ struct isis_area *area,
+ struct lspdb_head lspdb[]);
+
+/* Global variables. */
+extern struct thread_master *master;
+extern struct zebra_privs_t isisd_privs;
+extern struct isis_topology test_topologies[];
+
+#endif /* _COMMON_ISIS_H */