diff options
author | Sergey Matveychuk <sem@FreeBSD.org> | 2011-04-23 19:26:48 +0000 |
---|---|---|
committer | Sergey Matveychuk <sem@FreeBSD.org> | 2011-04-23 19:26:48 +0000 |
commit | 2381f723ff8edfa69e8c3bc94de86f43d928df34 (patch) | |
tree | ed2c5a1e7f95bf1ccd46ded63d2b4e65f9464f65 /net/quagga | |
parent | e316c05af78953ad8dd12f36c5e9e59d4675498b (diff) | |
download | ports-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/Makefile | 2 | ||||
-rw-r--r-- | net/quagga/files/patch-git-5 | 127 |
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 + |