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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox