📄 ospf6_interface.h
字号:
/* * Copyright (C) 2003 Yasuhiro Ohara * * This file is part of GNU Zebra. * * GNU Zebra 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. * * GNU Zebra 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 GNU Zebra; see the file COPYING. If not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */#ifndef OSPF6_INTERFACE_H#define OSPF6_INTERFACE_H#include "if.h"/* Debug option */extern unsigned char conf_debug_ospf6_interface;#define OSPF6_DEBUG_INTERFACE_ON() \ (conf_debug_ospf6_interface = 1)#define OSPF6_DEBUG_INTERFACE_OFF() \ (conf_debug_ospf6_interface = 0)#define IS_OSPF6_DEBUG_INTERFACE \ (conf_debug_ospf6_interface)/* Interface structure */struct ospf6_interface{ /* IF info from zebra */ struct interface *interface; /* back pointer */ struct ospf6_area *area; /* list of ospf6 neighbor */ list neighbor_list; /* linklocal address of this I/F */ struct in6_addr *linklocal_addr; /* Interface ID; use interface->ifindex */ /* ospf6 instance id */ u_char instance_id; /* I/F transmission delay */ u_int32_t transdelay; /* Router Priority */ u_char priority; /* Time Interval */ u_int16_t hello_interval; u_int16_t dead_interval; u_int32_t rxmt_interval; /* Cost */ u_int32_t cost; /* I/F MTU */ u_int32_t ifmtu; /* Interface State */ u_char state; /* OSPF6 Interface flag */ char flag; /* Decision of DR Election */ u_int32_t drouter; u_int32_t bdrouter; u_int32_t prev_drouter; u_int32_t prev_bdrouter; /* Linklocal LSA Database: includes Link-LSA */ struct ospf6_lsdb *lsdb; struct ospf6_lsdb *lsdb_self; struct ospf6_lsdb *lsupdate_list; struct ospf6_lsdb *lsack_list; /* Ongoing Tasks */ struct thread *thread_send_hello; struct thread *thread_send_lsupdate; struct thread *thread_send_lsack; struct thread *thread_network_lsa; struct thread *thread_link_lsa; struct thread *thread_intra_prefix_lsa; struct ospf6_route_table *route_connected; /* prefix-list name to filter connected prefix */ char *plist_name;};/* interface state */#define OSPF6_INTERFACE_NONE 0#define OSPF6_INTERFACE_DOWN 1#define OSPF6_INTERFACE_LOOPBACK 2#define OSPF6_INTERFACE_WAITING 3#define OSPF6_INTERFACE_POINTTOPOINT 4#define OSPF6_INTERFACE_DROTHER 5#define OSPF6_INTERFACE_BDR 6#define OSPF6_INTERFACE_DR 7#define OSPF6_INTERFACE_MAX 8extern char *ospf6_interface_state_str[];/* flags */#define OSPF6_INTERFACE_DISABLE 0x01#define OSPF6_INTERFACE_PASSIVE 0x02/* Function Prototypes */struct ospf6_interface *ospf6_interface_lookup_by_ifindex (int);struct ospf6_interface *ospf6_interface_lookup_by_name (char *);struct ospf6_interface *ospf6_interface_create (struct interface *);void ospf6_interface_delete (struct ospf6_interface *);void ospf6_interface_enable (struct ospf6_interface *);void ospf6_interface_disable (struct ospf6_interface *);void ospf6_interface_if_add (struct interface *);void ospf6_interface_if_del (struct interface *);void ospf6_interface_state_update (struct interface *);void ospf6_interface_connected_route_update (struct interface *);/* interface event */int interface_up (struct thread *);int interface_down (struct thread *);int wait_timer (struct thread *);int backup_seen (struct thread *);int neighbor_change (struct thread *);void ospf6_interface_init ();int config_write_ospf6_debug_interface (struct vty *vty);void install_element_ospf6_debug_interface ();#endif /* OSPF6_INTERFACE_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -