aboutsummaryrefslogtreecommitdiff
path: root/net/quagga
diff options
context:
space:
mode:
authorSergey Matveychuk <sem@FreeBSD.org>2011-04-23 19:26:48 +0000
committerSergey Matveychuk <sem@FreeBSD.org>2011-04-23 19:26:48 +0000
commit2381f723ff8edfa69e8c3bc94de86f43d928df34 (patch)
treeed2c5a1e7f95bf1ccd46ded63d2b4e65f9464f65 /net/quagga
parente316c05af78953ad8dd12f36c5e9e59d4675498b (diff)
downloadports-2381f723ff8edfa69e8c3bc94de86f43d928df34.tar.gz
ports-2381f723ff8edfa69e8c3bc94de86f43d928df34.zip
- 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)
Notes
Notes: svn path=/head/; revision=273112
Diffstat (limited to 'net/quagga')
-rw-r--r--net/quagga/Makefile2
-rw-r--r--net/quagga/files/patch-git-5127
2 files changed, 128 insertions, 1 deletions
diff --git a/net/quagga/Makefile b/net/quagga/Makefile
index 04d439b25deb..dd4d4b7f45c7 100644
--- a/net/quagga/Makefile
+++ b/net/quagga/Makefile
@@ -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/ \
diff --git a/net/quagga/files/patch-git-5 b/net/quagga/files/patch-git-5
new file mode 100644
index 000000000000..90778bcce621
--- /dev/null
+++ b/net/quagga/files/patch-git-5
@@ -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
+