Subject: IPv6 mib question (ipv6RouteEntry)

From: [email-masked]
Date: Fri, 07 Jan 2000 23:48:55 +0900

Hello, I have an update request about RFC2465 (IPv6 MIB), specifically
	ipv6RouteEntry.

	Due to scoped nature of some of IPv6 address (like link-local unicast,
	site-local unicast, and multicasts), there can be multiple IPv6
	scoped address/prefix with exactly the same value can appear on
	IPv6 routing table.
	For example, I have the following IPv6 routing table (sorry for long
	line) on the node I'm typing this email.
	There are multiple entries with "fe80::/64", and "ff02::/32".  They
	are disambiguated by its interface only.

	If we try to view those entries via SNMP,
>fe80::@sm1/64                      link#1                         
>fe80::@lo0/64                      fe80::1@lo0                    

	they would appear like below, at *exactly* the same MIB tree:
ipv6RouteTable.ipv6RouteEntry.ipv6RouteDest.254.128.0.0.0.0.0.0.0.0.0.0.0.0.0.0.64.0 = fe80:0:0:0:0:0:0:0
ipv6RouteTable.ipv6RouteEntry.ipv6RoutePfxLength.254.128.0.0.0.0.0.0.0.0.0.0.0.0.0.0.64.0 = 64 bits

	The collision is from non-unqueness of ipv6RouteEntry, since it does
	not include ipv6RouteIfIndex.

>         ipv6RouteEntry OBJECT-TYPE
>             SYNTAX     Ipv6RouteEntry
>             MAX-ACCESS not-accessible
>             STATUS     current
>             DESCRIPTION
>                     "A routing entry."
>             INDEX   { ipv6RouteDest,
>                       ipv6RoutePfxLength,
>                       ipv6RouteIndex }
>             ::= { ipv6RouteTable 1 }

	Is it possible to include ipv6RouteIfIndex when next revision is made?
	
	All INDEX definitions should include interface index to disambiguate
	MIB tree, if it is indexed by IPv6 address.  Good example:
	ipv6UdpEntry in RFC2454 includes ipv6UdpIfIndex in INDEX entry,
	and there will be no collision even if you have two UDP socket
	listening on ff02::9 on different interface.
	It seems ipv6RouteEntry is the only one which does not include
	interface index.

itojun

Internet6:
Destination                        Gateway                        Flags     Refs     Use    Mtu  Interface
::/96                              ::1                            UGRS        0        0  32976  lo0 =>
default                            fe80::240:5ff:fea0:8e08@sm1    UG          1     1886   1500  sm1
::1                                ::1                            UH          4     8771  32976  lo0
::ffff:0.0.0.0/96                  ::1                            UGRS        0        0  32976  lo0
3ffe:501:410::/64                  link#1                         UC          0        0   1500  sm1
3ffe:501:410:0:200:86ff:fe05:80fa  00:00:86:05:80:fa              UHL         0        0   1500  lo0
3ffe:501:410:0:240:5ff:fea0:8e08   00:40:05:a0:8e:08              UHL         0        6   1500  sm1
3ffe:507:1:1::/64                  link#1                         UC          0        0   1500  sm1
3ffe:507:1:1:200:86ff:fe05:80fa    00:00:86:05:80:fa              UHL         0        0   1500  lo0
3ffe:507:1:1:240:5ff:fea0:8e08     00:40:05:a0:8e:08              UHL         0       17   1500  sm1
3ffe:8020:10ff:1::/64              link#1                         UC          0        0   1500  sm1
fe80::/10                          ::1                            UGRS        0        0  32976  lo0
fe80::@sm1/64                      link#1                         UC          0        0   1500  sm1
fe80::200:86ff:fe05:80fa@sm1       00:00:86:05:80:fa              UHL         1        0   1500  lo0
fe80::240:5ff:fea0:8e08@sm1        00:40:05:a0:8e:08              UHL         1       44   1500  sm1
fe80::@lo0/64                      fe80::1@lo0                    U           0        8  32976  lo0
fec0::/10                          ::1                            UGRS        0        0  32976  lo0
ff01::/32                          ::1                            U           0        0  32976  lo0
ff02::@sm1/32                      link#1                         UC          0        0   1500  sm1
ff02::@lo0/32                      fe80::1@lo0                    UC          0        0  32976  lo0

--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page:                      http://playground.sun.com/ipng
FTP archive:                      ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [email-masked]
--------------------------------------------------------------------

---

From: [email-masked]
Date: Sat, 08 Jan 2000 02:47:20 +0900

> Doesn't the INDEX component ipv6RouteIndex disambiguate the entries?

	I believe ipv6RouteIndex and ipv6RouteIfIndex are different thing.
	From what I understand from the following part,
	- ipv6RouteIndex is for identifying equal-cost multi path routes and
	- ipv6RouteIfIndex identifies interface.

	I do not think ipv6RouteIndex includes meaning of ipv6RouteIfIndex
	Why do we have to have two similar values separately?

	"Same network layer destination" below is a bit tricky wording.
	In scoped address world, I tend to believe"fe80::1 on interface 1"
	and "fe80::1 on interface 2" are different destination for network
	layer.  Some may object it though...

itojun

---
         ipv6RouteIndex OBJECT-TYPE
             SYNTAX     Unsigned32
             MAX-ACCESS not-accessible
             STATUS     current
             DESCRIPTION
               "The value which uniquely identifies the route
               among the routes to the same network layer
               destination.  The way this value is chosen is
               implementation specific but it must be unique for
               ipv6RouteDest/ipv6RoutePfxLength pair and remain
               constant for the life of the route."
             ::= { ipv6RouteEntry 3 }

         ipv6RouteIfIndex OBJECT-TYPE
             SYNTAX     Ipv6IfIndexOrZero
             MAX-ACCESS read-only
             STATUS     current
             DESCRIPTION
               "The index value which uniquely identifies the local
               interface through which the next hop of this
               route should be reached.  The interface identified
               by a particular value of this index is the same
               interface as identified by the same value of
               ipv6IfIndex.  For routes of the discard type this
               value can be zero."
             ::= { ipv6RouteEntry 4 }
--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page:                      http://playground.sun.com/ipng
FTP archive:                      ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [email-masked]
--------------------------------------------------------------------

---

From: Dan Joyal <[email-masked]>
Date: Fri, 7 Jan 2000 12:37:46 -0500 (EST)

itojun,

-Dan

---

From: [email-masked]
Date: Sat, 08 Jan 2000 02:47:20 +0900

itojun

---