From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg0-f48.google.com (mail-pg0-f48.google.com [74.125.83.48]) by dpdk.org (Postfix) with ESMTP id E48EA2E8B for ; Tue, 11 Jul 2017 22:31:45 +0200 (CEST) Received: by mail-pg0-f48.google.com with SMTP id t186so1613579pgb.1 for ; Tue, 11 Jul 2017 13:31:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NZC56nKqBXUsISJOVNfGv3JzlDsNd3G6UjUvgtFdnLg=; b=SfPjY4UmITiDIIBJCINIYOrtczoeOK/y+1u0EKp4e5D7J+YqHOtta5MvYqcNt3kemc pC0vrjxU4lO4iFNwfSDU9Jb3v0+sBmeceXyMMoqvwLrfo63RXSV60/6pZQl0ZefVY5dA DhvpLUbu5lU4DstjBIRipJKhTGDJi6lI+XMxgWq4DHX6g08DlucbWb150FO0WdoEinI3 Sdit/k/nbawyCzZjPfIHei5tz5zPKmFHaXVTQ5E4M+5oT7U/0jes7rxtYsr23GxgKCYd Q1oYUpCixwp8X5ajjf1TeRHfZlU1z++mSMzz/k3GB8qpv1ZWVaku7zJvEGVPhYOvo768 GdDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NZC56nKqBXUsISJOVNfGv3JzlDsNd3G6UjUvgtFdnLg=; b=kz2WXbIdWjW+MRHwtUn/CfZSfMvd5CauVEb6JQdnvM4CaQckxzz8E0IFDFxYWUjGmH kv9CBq3x/cfaQEAEHbLOQ/RfvP55E65apPWEUETOb98fmf7A/gVfVKfZK7yc1y4fOe5T TtcbaeE26Ny+njlw7OnWq3Xml+BKLNMPlJ5vhBl2SxkiLb+IREPorKvpC5SEgej2X8iV b3Nya6e7KS+9Kopn1NALH6eWT7CKX2AKjYcCrwWBDlW/2PjWusUs5ieQG98M6RehAE+N ftRxBDUm30Qe6mjThv2sBY0WwJEFZGB/GawJ0WdgJXjbvgxAlNMJljr189Thh10Mh5zx UK5Q== X-Gm-Message-State: AIVw113Mypk1FVFvhrlEARMXpHt52KK49zot5X/dCN3VuZb2+MTyLqmz vzENBFCv18nAuoaI X-Received: by 10.98.134.71 with SMTP id x68mr51907132pfd.124.1499805105062; Tue, 11 Jul 2017 13:31:45 -0700 (PDT) Received: from xeon-e3 (76-14-207-240.or.wavecable.com. [76.14.207.240]) by smtp.gmail.com with ESMTPSA id t78sm340250pfa.48.2017.07.11.13.31.44 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 11 Jul 2017 13:31:44 -0700 (PDT) Date: Tue, 11 Jul 2017 13:31:43 -0700 From: Stephen Hemminger To: Medvedkin Vladimir Cc: dev@dpdk.org Message-ID: <20170711133143.77f02240@xeon-e3> In-Reply-To: <1499801585-10031-1-git-send-email-medvedkinv@gmail.com> References: <1499801585-10031-1-git-send-email-medvedkinv@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [RFC] Add RIB library X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Jul 2017 20:31:46 -0000 On Tue, 11 Jul 2017 19:33:04 +0000 Medvedkin Vladimir wrote: > Hi, > > I want to introduce new library for ip routing lookup that have some advantages > over current LPM library. In short: > - Increases the speed of control plane operations against lpm such as > adding/deleting routes > - Adds abstraction from dataplane algorythms, so it is possible to add > different ip route lookup algorythms such as DXR/poptrie/lpc-trie/etc > in addition to current dir24_8 > - It is possible to keep user defined application specific additional > information in struct rte_rib_v4_node which represents route entry. > It can be next hop/set of next hops (i.e. active and feasible), > pointers to link rte_rib_v4_node based on some criteria (i.e. next_hop), > plenty of additional control plane information. > - For dir24_8 implementation it is possible to remove rte_lpm_tbl_entry.depth > field that helps to save 6 bits. > - Also new dir24_8 implementation supports different next_hop sizes > (1/2/4/8 bytes per next hop) > > It would be nice to hear your opinion. The draft is below. > > Medvedkin Vladimir (1): > lib/rib: Add Routing Information Base library > > config/common_base | 6 + > doc/api/doxy-api.conf | 1 + > lib/Makefile | 2 + > lib/librte_rib/Makefile | 43 ++++ > lib/librte_rib/rte_dir24_8.c | 411 +++++++++++++++++++++++++++++++++++++++ > lib/librte_rib/rte_dir24_8.h | 144 ++++++++++++++ > lib/librte_rib/rte_rib.c | 454 +++++++++++++++++++++++++++++++++++++++++++ > lib/librte_rib/rte_rib.h | 260 +++++++++++++++++++++++++ > 8 files changed, 1321 insertions(+) > create mode 100644 lib/librte_rib/Makefile > create mode 100644 lib/librte_rib/rte_dir24_8.c > create mode 100644 lib/librte_rib/rte_dir24_8.h > create mode 100644 lib/librte_rib/rte_rib.c > create mode 100644 lib/librte_rib/rte_rib.h > In network paralance a RIB is usually a full route table and FIB is the forwarding table in use. You probably don't want to call this a RIB. It looks more like an abstraction above FIB. https://networkengineering.stackexchange.com/questions/38588/rib-vs-fib-differences http://aftabsiddiqui.com/index.php/ip-routing-table-rib-and-forwarding-table-fib/