Re: [homenet] draft-mrw-homenet-rtg-comparison-01

Markus Stenberg <markus.stenberg@iki.fi> Mon, 02 March 2015 06:06 UTC

Return-Path: <markus.stenberg@iki.fi>
X-Original-To: homenet@ietfa.amsl.com
Delivered-To: homenet@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 54C861A004A for <homenet@ietfa.amsl.com>; Sun, 1 Mar 2015 22:06:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Level:
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BrRBoZdz5xL6 for <homenet@ietfa.amsl.com>; Sun, 1 Mar 2015 22:05:59 -0800 (PST)
Received: from kirsi1.inet.fi (mta-out1.inet.fi [62.71.2.227]) by ietfa.amsl.com (Postfix) with ESMTP id A4EF31A00CC for <homenet@ietf.org>; Sun, 1 Mar 2015 22:05:58 -0800 (PST)
Received: from poro.lan (80.220.64.126) by kirsi1.inet.fi (8.5.142.08) (authenticated as stenma-47) id 54E3C711018D4C83; Mon, 2 Mar 2015 08:05:47 +0200
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Markus Stenberg <markus.stenberg@iki.fi>
In-Reply-To: <201503020312.t223CsAR005764@maildrop31.somerville.occnc.com>
Date: Mon, 02 Mar 2015 08:05:45 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <48CF8896-1924-493E-AEFE-CE393347C8B4@iki.fi>
References: <201503020312.t223CsAR005764@maildrop31.somerville.occnc.com>
To: curtis@ipv6.occnc.com
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/homenet/Y8UFy4zKpVFr1GMTl-G1vq3UhXA>
Cc: homenet@ietf.org, Markus Stenberg <markus.stenberg@iki.fi>
Subject: Re: [homenet] draft-mrw-homenet-rtg-comparison-01
X-BeenThere: homenet@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <homenet.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/homenet>, <mailto:homenet-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/homenet/>
List-Post: <mailto:homenet@ietf.org>
List-Help: <mailto:homenet-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/homenet>, <mailto:homenet-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Mar 2015 06:06:05 -0000

On 2.3.2015, at 5.12, Curtis Villamizar <curtis@ipv6.occnc.com> wrote:
> Most important is that if this were to become a WG doc and the WG has
> for some reason excluded OSPF, this document should evaluate OSPF as
> well as ISIS and say why OSPF was not considered.

I thought the WG more or less arbitrarily chose to make this beauty contest just limited to 2 protocols based on some live meeting comments or something. So this might be too little, too late, perhaps.

> Note: MT might be a better solution.  One TLV maps the source prefix
> to a topology identifier (an integer).  This also maps well into the
> Linux and BSD implementations of multiple routing tables with an index
> for each routing table, and the default being zero.  Perhaps another
> thing for the WG to discuss.

draft-baker-ipv6-ospf-dst-src-routing-03 (expired) exists too. And conceptually it is exactly same as IS-IS draft with also draft-baker- prefix.

> OSPFv3 also support IPv4 and IPv6 multicast.

Any (open-source) implementations?

> Maybe it would be better to run a multicast routing protocol than
> ISIS, OSPF, or Babel extensions.

Yes, something like PIM (or a bunch of proxies, ha ha).

>  11.  Implementation Status
> 
>   There are HOMENET implementations of both IS-IS and Babel.
> 
> How do you define a HOMENET implementation?

Filling the criteria above I guess. 

> There are open source implementations of ISIS, OSPF, and Babel.  Some
> have been linked in with the openwrt code.  openwrt != homenet; but
> its nice to see open code on a plastic router.

Notably, I am not aware of a single OSPF (open-source) implementation with zeroconf and source-specific routing.

> I'm not sure if there are any open source ospf-zero-conf
> implementations.  Anyone know?

I used to maintain one originally made by Benjamin Patterson (fork of BIRD). However, I am still not aware of an implementation with the source-specific routing support which is the more painful part (especially as it essentially requires OSPF3.1, due to changing all LSAs, see draft-ietf-ospf-ospfv3-lsa-extend draft).

At a guess it would be weeks-months of happy hacking for someone. 

> I'm going to skip this since what we should be discussing is an
> analysis of the amount of state needed so we don't risk making a
> comparison using poorly written code.

A very academic point of view but I can respect that, you are not the only one with it here.

> This seems like a silly comparison.  C code vs Erlang.  For example,
> without reading the source code, do we know which implementation makes
> good use of dynamic allocation vs allocates big static arrays.  This
> is meaningless.  Cisco ISIS and OSPF used to be viable in routers with
> under 1MB RAM circa early 1990s with a tiny footprint.
> 
> For the purpose of sizing it might be better to consider the OSPF
> implementations in C such as http://bird.network.cz/,
> http://www.openbgp.org/, http://www.quagga.net/ 

Certainly. Please point me to src-specific zeroconf open-source implementation of IS-IS or OSPF that is written in C.

> Note that the quagga ISIS is experimental.  Quagga also includes
> Babel.
> 
> For example.  Bird OSPFv3 is about 12K lines of C code including both .h
> and .c files.  Quagga OSPFv3 is 23K lines of C code.  In comparison,
> Quagga BGP is 56k lines of code.

Most of real Quagga footprint is non-routing-protocol code. For Bird it is not quite that bad, but still.

If we are trying to defuse the pointless things from the document, line count is also completely BS measure, I can produce OSPF implementation in 1 line of C by taking in Bird, little preprocessing, and 1 sed command.

Only thing that really matters (from my point of view) is whether it fits in compiled form in small enough RAM/flash, and does not kill the low-end CPU.

> I'm in favor of multiple alternatives and let the market decide.  I'm
> also in favor of using OSPF rather than ISIS due to ISIS use of CLNP.

Me too (CLNP should die), but I am not sure we have that option unless someone coughs up implementation that is actually usable for this case. Saying that the (partially expired) draft set can be used to produce a homenet conforming implementation is one thing, but having them already (IS-IS / Babel) is quite different.

Cheers,

-Markus