From: Joe MacDonald <joe@deserted.net>
To: openembedded-devel@lists.openembedded.org
Subject: Re: [PATCH meta-networking] quagga: backport a patch from 0.99.22 to fix "no ip address" command
Date: Wed, 6 Nov 2013 15:33:57 -0500 [thread overview]
Message-ID: <20131106203355.GD3791@deserted.net> (raw)
In-Reply-To: <1383535910-1944-1-git-send-email-rongqing.li@windriver.com>
[-- Attachment #1: Type: text/plain, Size: 4304 bytes --]
Merged, thanks.
-J.
[[oe] [PATCH meta-networking] quagga: backport a patch from 0.99.22 to fix "no ip address" command] On 13.11.04 (Mon 11:31) rongqing.li@windriver.com wrote:
> From: Roy Li <rongqing.li@windriver.com>
>
> Signed-off-by: Roy Li <rongqing.li@windriver.com>
> ---
> ...ingering-IP-address-after-deletion-BZ-486.patch | 64 ++++++++++++++++++++
> .../recipes-protocols/quagga/quagga_0.99.21.bb | 3 +-
> 2 files changed, 66 insertions(+), 1 deletion(-)
> create mode 100644 meta-networking/recipes-protocols/quagga/files/lingering-IP-address-after-deletion-BZ-486.patch
>
> diff --git a/meta-networking/recipes-protocols/quagga/files/lingering-IP-address-after-deletion-BZ-486.patch b/meta-networking/recipes-protocols/quagga/files/lingering-IP-address-after-deletion-BZ-486.patch
> new file mode 100644
> index 0000000..42bdc20
> --- /dev/null
> +++ b/meta-networking/recipes-protocols/quagga/files/lingering-IP-address-after-deletion-BZ-486.patch
> @@ -0,0 +1,64 @@
> +From 7f062c217b262e362a3362c677dea6c5e820adf1 Mon Sep 17 00:00:00 2001
> +From: David Lamparter <equinox@diac24.net>
> +Date: Mon, 1 Feb 2010 16:41:26 +0100
> +Subject: [PATCH] zebra: lingering IP address after deletion (BZ#486)
> +
> +Upstream-status: Backport
> +
> +zebra address bookkeeping is a mess. this is just a workaround to have
> +IPv4 address deletion somewhat working on Linux.
> +
> +the if_unset_prefix call is synchronous, when it returns success the
> +address deletion completed successfully. this is either signaled by a
> +netlink ACK or by an OK return value from ioctl().
> +
> +This version is wrapped by #ifdef HAVE_NETLINK so we don't touch the
> +BSDs for now.
> +
> +* zebra/interface.c: On Linux, update zebra internal state after
> + deleting an address.
> +
> +Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
> +---
> + zebra/interface.c | 21 ++++++++++++++++++---
> + 1 file changed, 18 insertions(+), 3 deletions(-)
> +
> +diff --git a/zebra/interface.c b/zebra/interface.c
> +index 2242259..3578b79 100644
> +--- a/zebra/interface.c
> ++++ b/zebra/interface.c
> +@@ -1297,13 +1297,28 @@ ip_address_uninstall (struct vty *vty, struct interface *ifp,
> + safe_strerror(errno), VTY_NEWLINE);
> + return CMD_WARNING;
> + }
> ++ /* success! call returned that the address deletion went through.
> ++ * this is a synchronous operation, so we know it succeeded and can
> ++ * now update all internal state. */
> ++
> ++ /* the HAVE_NETLINK check is only here because, on BSD, although the
> ++ * call above is still synchronous, we get a second confirmation later
> ++ * through the route socket, and we don't want to touch that behaviour
> ++ * for now. It should work without the #ifdef, but why take the risk...
> ++ * -- equinox 2012-07-13 */
> ++#ifdef HAVE_NETLINK
> ++
> ++ /* Remove connected route. */
> ++ connected_down_ipv4 (ifp, ifc);
> +
> +-#if 0
> + /* Redistribute this information. */
> + zebra_interface_address_delete_update (ifp, ifc);
> +
> +- /* Remove connected route. */
> +- connected_down_ipv4 (ifp, ifc);
> ++ /* IP address propery set. */
> ++ UNSET_FLAG (ifc->conf, ZEBRA_IFC_REAL);
> ++
> ++ /* remove from interface, remark secondaries */
> ++ if_subnet_delete (ifp, ifc);
> +
> + /* Free address information. */
> + listnode_delete (ifp->connected, ifc);
> +--
> +1.7.10.4
> +
> diff --git a/meta-networking/recipes-protocols/quagga/quagga_0.99.21.bb b/meta-networking/recipes-protocols/quagga/quagga_0.99.21.bb
> index 2b46930..10740bc 100644
> --- a/meta-networking/recipes-protocols/quagga/quagga_0.99.21.bb
> +++ b/meta-networking/recipes-protocols/quagga/quagga_0.99.21.bb
> @@ -2,7 +2,8 @@ require quagga.inc
>
> PR = "${INC_PR}.0"
>
> -SRC_URI += "file://0001-doc-fix-makeinfo-errors-and-one-warning.patch"
> +SRC_URI += "file://0001-doc-fix-makeinfo-errors-and-one-warning.patch \
> + file://lingering-IP-address-after-deletion-BZ-486.patch"
>
> SRC_URI[quagga-0.99.21.md5sum] = "99840adbe57047c90dfba6b6ed9aec7f"
> SRC_URI[quagga-0.99.21.sha256sum] = "9b8aea9026b4771a28e254a66cbd854723bcd0d71eebd0201d11838d4eb392ee"
--
-Joe MacDonald.
:wq
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
prev parent reply other threads:[~2013-11-06 20:33 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-04 3:31 [PATCH meta-networking] quagga: backport a patch from 0.99.22 to fix "no ip address" command rongqing.li
2013-11-06 20:33 ` Joe MacDonald [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131106203355.GD3791@deserted.net \
--to=joe@deserted.net \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.