summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_interface.h
diff options
context:
space:
mode:
authorIgor Ryzhov <iryzhov@nfware.com>2021-05-26 01:49:30 +0300
committerIgor Ryzhov <iryzhov@nfware.com>2021-06-08 21:38:09 +0300
commit42cabc552d50b3dbc658b88a27b75fd6a2f7bec5 (patch)
tree80f2fe12c51a8075e481376adc13eb37b90d7c54 /ospf6d/ospf6_interface.h
parent6869bb921e7b79aeb2b145ce0b98bec8af8cbc84 (diff)
ospf6d: fix interface area configuration
Currently the interface area is configured from the router node using "interface IFNAME area ID" command. There are multiple problems with this command: - it is not in line with all other interface-related commands - other parameters are configured from the interface node using "ipv6 ospf6" prefix - it is not in line with OSPFv2 - area is configured from the interface node using "ip ospf area" command - most importantly, it doesn't work correctly when the interface is in a different VRF - instead of configuring the interface, it creates a new fake interface and configuring it instead To fix all the problems, this commit adds a new command to the interface configuration node - "ipv6 ospf6 area ID". The purpose of the command is completely the same, but it works correctly in a multi-VRF environment. The old command is preserved for the backward compatibility, but the warning is added that it is deprecated because it doesn't work correctly with VRFs. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Diffstat (limited to 'ospf6d/ospf6_interface.h')
-rw-r--r--ospf6d/ospf6_interface.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/ospf6d/ospf6_interface.h b/ospf6d/ospf6_interface.h
index fb1b947cf8..796d75e897 100644
--- a/ospf6d/ospf6_interface.h
+++ b/ospf6d/ospf6_interface.h
@@ -39,6 +39,9 @@ struct ospf6_interface {
/* back pointer */
struct ospf6_area *area;
+ uint32_t area_id;
+ int area_id_format;
+
/* list of ospf6 neighbor */
struct list *neighbor_list;
@@ -177,6 +180,9 @@ extern const char *const ospf6_interface_state_str[];
/* Function Prototypes */
+extern void ospf6_interface_start(struct ospf6_interface *oi);
+extern void ospf6_interface_stop(struct ospf6_interface *oi);
+
extern struct ospf6_interface *
ospf6_interface_lookup_by_ifindex(ifindex_t, vrf_id_t vrf_id);
extern struct ospf6_interface *ospf6_interface_create(struct interface *);
@@ -185,7 +191,6 @@ extern void ospf6_interface_delete(struct ospf6_interface *);
extern void ospf6_interface_enable(struct ospf6_interface *);
extern void ospf6_interface_disable(struct ospf6_interface *);
-extern void ospf6_interface_if_add(struct interface *);
extern void ospf6_interface_state_update(struct interface *);
extern void ospf6_interface_connected_route_update(struct interface *);
extern void ospf6_interface_connected_route_add(struct connected *);