mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-18 08:02:48 +00:00
- A patch from a developers git: add command "mtu-ignore" to ospf6d
daemon just like in ospfd. Submitted by: Dmitrij Tejblum <tejblum_at_yandex-team.ru> Approved by: maintainer (implicitly)
This commit is contained in:
parent
e316c05af7
commit
2381f723ff
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=273112
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= quagga
|
||||
PORTVERSION= 0.99.17
|
||||
PORTREVISION= 7
|
||||
PORTREVISION= 8
|
||||
CATEGORIES= net ipv6
|
||||
MASTER_SITES= http://quagga.net/download/ \
|
||||
http://www.ru.quagga.net/download/ \
|
||||
|
127
net/quagga/files/patch-git-5
Normal file
127
net/quagga/files/patch-git-5
Normal file
@ -0,0 +1,127 @@
|
||||
diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
|
||||
index cb34745..236baf1 100644
|
||||
--- ospf6d/ospf6_interface.c
|
||||
+++ ospf6d/ospf6_interface.c
|
||||
@@ -118,6 +118,7 @@ ospf6_interface_create (struct interface *ifp)
|
||||
oi->cost = 1;
|
||||
oi->state = OSPF6_INTERFACE_DOWN;
|
||||
oi->flag = 0;
|
||||
+ oi->mtu_ignore = 0;
|
||||
|
||||
/* Try to adjust I/O buffer size with IfMtu */
|
||||
oi->ifmtu = ifp->mtu6;
|
||||
@@ -784,6 +785,8 @@ ospf6_interface_show (struct vty *vty, struct interface *ifp)
|
||||
{
|
||||
vty_out (vty, " Instance ID %d, Interface MTU %d (autodetect: %d)%s",
|
||||
oi->instance_id, oi->ifmtu, ifp->mtu6, VNL);
|
||||
+ vty_out (vty, " MTU mismatch detection: %s%s", oi->mtu_ignore ?
|
||||
+ "disabled" : "enabled", VNL);
|
||||
inet_ntop (AF_INET, &oi->area->area_id,
|
||||
strbuf, sizeof (strbuf));
|
||||
vty_out (vty, " Area ID %s, Cost %hu%s", strbuf, oi->cost,
|
||||
@@ -1368,6 +1371,55 @@ DEFUN (no_ipv6_ospf6_passive,
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
+DEFUN (ipv6_ospf6_mtu_ignore,
|
||||
+ ipv6_ospf6_mtu_ignore_cmd,
|
||||
+ "ipv6 ospf6 mtu-ignore",
|
||||
+ IP6_STR
|
||||
+ OSPF6_STR
|
||||
+ "Ignore MTU mismatch on this interface\n"
|
||||
+ )
|
||||
+{
|
||||
+ struct ospf6_interface *oi;
|
||||
+ struct interface *ifp;
|
||||
+
|
||||
+ ifp = (struct interface *) vty->index;
|
||||
+ assert (ifp);
|
||||
+
|
||||
+ oi = (struct ospf6_interface *) ifp->info;
|
||||
+ if (oi == NULL)
|
||||
+ oi = ospf6_interface_create (ifp);
|
||||
+ assert (oi);
|
||||
+
|
||||
+ oi->mtu_ignore = 1;
|
||||
+
|
||||
+ return CMD_SUCCESS;
|
||||
+}
|
||||
+
|
||||
+DEFUN (no_ipv6_ospf6_mtu_ignore,
|
||||
+ no_ipv6_ospf6_mtu_ignore_cmd,
|
||||
+ "no ipv6 ospf6 mtu-ignore",
|
||||
+ NO_STR
|
||||
+ IP6_STR
|
||||
+ OSPF6_STR
|
||||
+ "Ignore MTU mismatch on this interface\n"
|
||||
+ )
|
||||
+{
|
||||
+ struct ospf6_interface *oi;
|
||||
+ struct interface *ifp;
|
||||
+
|
||||
+ ifp = (struct interface *) vty->index;
|
||||
+ assert (ifp);
|
||||
+
|
||||
+ oi = (struct ospf6_interface *) ifp->info;
|
||||
+ if (oi == NULL)
|
||||
+ oi = ospf6_interface_create (ifp);
|
||||
+ assert (oi);
|
||||
+
|
||||
+ oi->mtu_ignore = 0;
|
||||
+
|
||||
+ return CMD_SUCCESS;
|
||||
+}
|
||||
+
|
||||
DEFUN (ipv6_ospf6_advertise_prefix_list,
|
||||
ipv6_ospf6_advertise_prefix_list_cmd,
|
||||
"ipv6 ospf6 advertise prefix-list WORD",
|
||||
@@ -1495,6 +1547,9 @@ config_write_ospf6_interface (struct vty *vty)
|
||||
if (CHECK_FLAG (oi->flag, OSPF6_INTERFACE_PASSIVE))
|
||||
vty_out (vty, " ipv6 ospf6 passive%s", VNL);
|
||||
|
||||
+ if (oi->mtu_ignore)
|
||||
+ vty_out (vty, " ipv6 ospf6 mtu-ignore%s", VNL);
|
||||
+
|
||||
vty_out (vty, "!%s", VNL);
|
||||
}
|
||||
return 0;
|
||||
@@ -1547,6 +1602,9 @@ ospf6_interface_init (void)
|
||||
install_element (INTERFACE_NODE, &ipv6_ospf6_passive_cmd);
|
||||
install_element (INTERFACE_NODE, &no_ipv6_ospf6_passive_cmd);
|
||||
|
||||
+ install_element (INTERFACE_NODE, &ipv6_ospf6_mtu_ignore_cmd);
|
||||
+ install_element (INTERFACE_NODE, &no_ipv6_ospf6_mtu_ignore_cmd);
|
||||
+
|
||||
install_element (INTERFACE_NODE, &ipv6_ospf6_advertise_prefix_list_cmd);
|
||||
install_element (INTERFACE_NODE, &no_ipv6_ospf6_advertise_prefix_list_cmd);
|
||||
}
|
||||
diff --git a/ospf6d/ospf6_interface.h b/ospf6d/ospf6_interface.h
|
||||
index 878c29e..cf758c0 100644
|
||||
--- ospf6d/ospf6_interface.h
|
||||
+++ ospf6d/ospf6_interface.h
|
||||
@@ -76,6 +76,9 @@ struct ospf6_interface
|
||||
/* OSPF6 Interface flag */
|
||||
char flag;
|
||||
|
||||
+ /* MTU mismatch check */
|
||||
+ u_char mtu_ignore;
|
||||
+
|
||||
/* Decision of DR Election */
|
||||
u_int32_t drouter;
|
||||
u_int32_t bdrouter;
|
||||
diff --git a/ospf6d/ospf6_message.c b/ospf6d/ospf6_message.c
|
||||
index d06eba2..51933b7 100644
|
||||
--- ospf6d/ospf6_message.c
|
||||
+++ ospf6d/ospf6_message.c
|
||||
@@ -832,7 +832,7 @@ ospf6_dbdesc_recv (struct in6_addr *src, struct in6_addr *dst,
|
||||
((caddr_t) oh + sizeof (struct ospf6_header));
|
||||
|
||||
/* Interface MTU check */
|
||||
- if (ntohs (dbdesc->ifmtu) != oi->ifmtu)
|
||||
+ if (!oi->mtu_ignore && ntohs (dbdesc->ifmtu) != oi->ifmtu)
|
||||
{
|
||||
if (IS_OSPF6_DEBUG_MESSAGE (oh->type, RECV))
|
||||
zlog_debug ("I/F MTU mismatch");
|
||||
--
|
||||
1.7.4.4
|
||||
|
Loading…
Reference in New Issue
Block a user