From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ia0-x22f.google.com (mail-ia0-x22f.google.com [IPv6:2607:f8b0:4001:c02::22f]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id A7715200664 for ; Wed, 24 Apr 2013 02:33:17 -0700 (PDT) Received: by mail-ia0-f175.google.com with SMTP id i38so1381077iae.6 for ; Wed, 24 Apr 2013 02:33:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:content-transfer-encoding; bh=KJvtRKafYXKL3rIDzQ+3ArPnTXb078/Dc99jlyT0wgI=; b=gHtvJkXJV1ZmKyafTcM+xW3tBEl5nmP4lXwoKF+LmYXyHeQZgWPCRV0SCx/vf30i/A CGjcbBwTFx6YKuoXVZT4i+SHOu6ypJ52z0ohK+ipr1yhyp/rKUoOrtS8QY285XfEHSCK Sg+q5k+Qq9YMVG36uai6M2aq5RJmqFBAYnmWRtGC6ZFablxk8Wlrhqz/3xUh1AqTMi5A FF4txVsbn1oVOxJtSG2v5Ag98bOIC9ll1hzAYiveeQR3ZVxeRU2afziuPm+jMTD5n7Gt 4xUHRFXvVXQir9DszCpMOVu3w0Ohyr2jy7eKdPap2BWLHCl9IllA0r5m/CoPIC+wTQQZ ll0A== MIME-Version: 1.0 X-Received: by 10.50.87.71 with SMTP id v7mr21302353igz.96.1366795997145; Wed, 24 Apr 2013 02:33:17 -0700 (PDT) Received: by 10.64.132.71 with HTTP; Wed, 24 Apr 2013 02:33:17 -0700 (PDT) In-Reply-To: References: Date: Wed, 24 Apr 2013 02:33:17 -0700 Message-ID: From: Dave Taht To: Maciej Soltysiak Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: cerowrt-devel@lists.bufferbloat.net Subject: Re: [Cerowrt-devel] atomic route updates? X-BeenThere: cerowrt-devel@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Development issues regarding the cerowrt test router project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Apr 2013 09:33:17 -0000 On Tue, Apr 23, 2013 at 11:14 PM, Maciej Soltysiak w= rote: > I think I remember to fix ssdp you brought some of route cache and igmp > back. No. What I did observe was that for the past 2+ years, routing behavior kept changing in subtle ways, and I am hoping it's all perfect now. the igmp bug was due to openwrt being too agressive on removing useless cruft from /proc, thus breaking a few userspace tools. Been fixed a while now. > Do we know if cero routed setup without route cache can work with > ssdp? I wouldn't like to force bringing back route cache just for ssdp. Routes are routes. The route cache was an inefficient means of theoretically speeding up route lookup and has been eliminated, that's all. Route lookups still happen, just not through an over-abstracted cache mechanism. > I'm OK to test this scenario. goferit. > > Maciej > > On 20 Apr 2013 18:01, "Dave Taht" wrote: >> >> iproute2's ip/iproute2.c code has a function called iproute_modify, >> which to a blurring eye appears to be capable of doing an atomic route >> update via it's netlink interface. >> >> " if (matches(*argv, "change") =3D=3D 0 || strcmp(*argv, "chg") = =3D=3D 0) >> return iproute_modify(RTM_NEWROUTE, NLM_F_REPLACE, >> argc-1, argv+1); >> if (matches(*argv, "replace") =3D=3D 0) >> return iproute_modify(RTM_NEWROUTE, >> NLM_F_CREATE|NLM_F_REPLACE, >> argc-1, argv+1);" >> >> The babel native daemon and the quagga-re code, however, does a >> delete/add, which results in packets dropping on the floor when a >> route changes. >> >> Everyone that's tried to make this code do atomic updates has failed. >> >> Juliusz thinks this section of the codebase is cursed, and I >> personally, gave up, because dave miller had spent most of the last 3+ >> years eliminating the linux kernel route cache, (which was finally >> eliminated a few kernel versions back (3.6?)) and I figured all >> attempts at doing anything fancy with routing during that phase was >> going to break in odd ways until the new cache-free-linux-kernel >> routing code stabilized. >> >> OK, so, like, it's kernel 3.8 time now, and ... I find myself too >> scarred by previous attempts to give it a go myself, but I know that >> out there are intrepid explorers out there, just dying to delve into >> the gnarly details of netlink programming to keep a few more streams >> going full throttle in the face of a routing change! Yes? Anyone? So >> take a look at iproute2 and the relevant netlink code here: >> >> git://github.com/Quagga-RE/quagga-RE.git >> git://github.com/jech/babeld.git >> >> I note that I have a few other ideas for netlink-related changes to >> cero. Two of the big ones is that I'd like to be able to have a >> userspace daemon get back more details as to when *fq_codel drops a >> packet (e.g, send a multicast to a listener of the dropped the packet, >> and why), and get some sort of ongoing bandwidth estimate when it >> starts dropping, etc. >> >> I also have some hope for multi-prefix multi-homed routing too... >> >> but I find netlink really intimidating. It has an interface that only >> a bit-banger would love. >> >> -- >> Dave T=E4ht >> >> PS: I have a build of 3.8.8 at the moment that uses the new PROCD >> replacement for init that I'm losing a battle on, too. Also toke has >> got cero mostly independently buildable now. >> >> Fixing bufferbloat with cerowrt: >> http://www.teklibre.com/cerowrt/subscribe.html >> _______________________________________________ >> Cerowrt-devel mailing list >> Cerowrt-devel@lists.bufferbloat.net >> https://lists.bufferbloat.net/listinfo/cerowrt-devel --=20 Dave T=E4ht Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.= html