Subject: Re: [nvo3] is it resonsable that draft-dunbar-nvo3-nva-mapping-distribution-01 suggests NVE using bit-map to represent its supported VNs?

From: Linda Dunbar <[email-masked]>
Date: Fri, 6 Feb 2015 23:59:41 +0000

Xiao Hu, 

Enabled-VN TLV for the Mapping Distribution is for NVE to announce all the VNs that it participates. 
If VNs are represented by MPLS label, they are still VN ID (24 bits). I don't see why need to have both VN-ID and "Local MPLS label". 

Therefore, I don't think the TLV proposed by draft-xu-nvo3-isis-cp-00 is a good solution for NVE to announce all the VNs it participates. 

Linda

-----Original Message-----
From: Xuxiaohu 
Sent: Friday, January 30, 2015 7:31 PM
To: Linda Dunbar; Tom Herbert
Cc: [email-masked]; [email-masked]
Subject: RE: [nvo3] is it resonsable that draft-dunbar-nvo3-nva-mapping-distribution-01 suggests NVE using bit-map to represent its supported VNs?

Hi Linda,

> -----Original Message-----
> From: Linda Dunbar
> Sent: Saturday, January 31, 2015 6:53 AM
> To: Xuxiaohu; Tom Herbert
> Cc: [email-masked]; [email-masked]
> Subject: RE: [nvo3] is it resonsable that
> draft-dunbar-nvo3-nva-mapping-distribution-01 suggests NVE using 
> bit-map to represent its supported VNs?
> 
> Xiao Hu,
> 
> Do you mean this TLV in your draft?

Yes.

> 
>           0                   1                   2
> 3
>           0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
>          +-+-+-+-+-+-+-+-+
>          | Type=VN Info  |
>          +-+-+-+-+-+-+-+-+
>          |    Length     |
>          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>          |
> |
>          |                 Originating NVE's IP Address
> |
>          |                         (128 bits)
> |
>          |
> |
>          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>          | Resv (8 bits) |                VN ID (24 bits)                |
>          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>          |    Resv (12 bits)     |       Local MPLS Label (20 bits)      |
>          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>          :
>      :
>          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>          | Resv (8 bits) |                 VN ID (24 bits)               |
>          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>          |    Resv (12 bits)     |       Local MPLS Label (20 bits)      |
>          
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> 
> 
> So you are assuming to use the list of VNs. If a NVE participate in 20 
> VNs (or more for TOR based NVE), there will be 20* (4 bytes).

Yes, if there are too many VN instances, they could be listed in more than one TLV.

> Correct?
> 
> Why need to list the Local MPLS Label? What if there is no MPLS used?

The MPLS label would be useful only in the case where the VNs are identified by MPLS labels on the data plane. the MPLS label could be set to zero if there is no MPLS used.

Best regards,
Xiaohu

> Linda
> 
> -----Original Message-----
> From: Xuxiaohu
> Sent: Friday, January 30, 2015 3:30 AM
> To: Tom Herbert; Linda Dunbar
> Cc: [email-masked]; [email-masked]
> Subject: RE: [nvo3] is it resonsable that
> draft-dunbar-nvo3-nva-mapping-distribution-01 suggests NVE using 
> bit-map to represent its supported VNs?
> 
> > > Therefore, I think it is better to have a flag indicating if the 
> > > VNs are listed individually, Upper/Lower ranges, or bit mapped.
> > >
> > I wouldn't use a flag for that, it's probably cleaner to define 
> > another TLV type that gives a list of VNIDs. Either the list or 
> > bit-map can be
> used interchangeably.
> 
> There has been a draft 
> (https://tools.ietf.org/html/draft-xu-nvo3-isis-cp-00)
> talking about that approach. By the way, we have implemented a demo on 
> Quagga (installed on Ubuntu) which is capable of interworking with OVS.
> 
> Best regards,
> Xiaohu
> 
> > Tom
> >
> > >
> > >
> > > Any other suggestions?
> > >
> > >
> > >
> > > Linda
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > nvo3 mailing list
> > > [email-masked]
> > > https://www.ietf.org/mailman/listinfo/nvo3
> > >
> >
> > _______________________________________________
> > nvo3 mailing list
> > [email-masked]
> > https://www.ietf.org/mailman/listinfo/nvo3

---

From: Mingui Zhang <[email-masked]>
Date: Mon, 9 Feb 2015 01:12:19 +0000

Hi Linda,

>> Therefore, I think it is better to have a flag indicating if the VNs are
>> listed individually, Upper/Lower ranges, or bit mapped.
>>
>bit-map can be used interchangeably.

I also think separate TLVs should be specified. Thus we will have three types of TLV to encode the VNID list: 
(1) VNIDs listed individually; 
(2) Ranges with Upper/Lower bounds; 
(3) One or *multiple* bit-maps of VNIDs.

Since it's still possible that a single TLV is too large by using any of the TLVs so fragmentation should be specified as well. 

Thanks,
Mingui

>From: nvo3 [mailto:[email-masked]] On Behalf Of Tom Herbert
>Sent: Friday, January 30, 2015 6:27 AM
>To: Linda Dunbar
>Subject: Re: [nvo3] is it resonsable that
>draft-dunbar-nvo3-nva-mapping-distribution-01 suggests NVE using bit-map to
>represent its supported VNs?
>
>On Thu, Jan 29, 2015 at 1:53 PM, Linda Dunbar <[email-masked]>
>wrote:
>> When a NVE is initialized or re-started, it uses Virtual Network scoped
>> instances of the IS-IS to announce all the Virtual Networks in which it is
>> participating.
>>
>>
>>
>> The  current draft-dunbar-nvo3-nva-mapping-distribution-01 suggests using
>> the bit map to represent the supported VNs.
>>
>>    +-+-+-+-+-+-+-+-+
>>
>>    |     Type      |                  (1 byte)
>>
>>    +-+-+-+-+-+-+-+-+
>>
>>    |   Length      |                  (1 byte)
>>
>>    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>>
>>    | RESV  |  Start VN ID          |  (2 bytes)
>>
>>    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>>
>>    | VNID bit-map....
>>
>>    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>>
>> Figure 2. Enabled-VN TLV
>>
>Hi Linda,
>
>First a couple of meta comments on the draft:
>
>- Sizes of type and lengths in TLVs are inconsistent (some 16 bits,
>some 32 bits). It might be just as well to make all of them 16 bits.
>- For the above, I think the Start VNID field is 4 bytes not 2 bytes.
>- Please avoid implicitly setting constraints on the data plane in the
>definition of control plane. For instance, I've already made arguments
>that VN ID might be thirty-two bits, and there's little cost to
>defining thirty-two bit VN IDs in the control plane.
>
>>
>>
>>
>>
>> For 24-bits VN ID, there could be 16million VNs. Even with the “Start VN ID”
>> listed, the number of bytes for the bitmap can be very large.
>>
>>
>>
>> Therefore, I think it is better to have a flag indicating if the VNs are
>> listed individually, Upper/Lower ranges, or bit mapped.
>>
>bit-map can be used interchangeably.
>
>Tom
>
>>
>>
>> Any other suggestions?
>>
>>
>>
>> Linda
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>

---

From: Linda Dunbar <[email-masked]>
Date: Fri, 27 Feb 2015 23:08:33 +0000

Thanks to many people suggestion on how to express the list of VNs that an NVE is participating. 

Based on those comments, we created 3 types of subTLV to express the interested VNs:

   +-+-+-+-+-+-+-+-+
   |INT-VN-TYPE-1  |                  (1 byte)
   +-+-+-+-+-+-+-+-+
   |   Length      |                  (1 byte)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Requesting NVE Address subTLV   ...         (variable)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | RESV  |  Start VN ID          |  (4 bytes)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | VNID bit-map....
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
Figure 2. Enabled-VN TLV using bit map

   +-+-+-+-+-+-+-+-+
   | INT-VN-TYPE-2 |                  (1 byte)
   +-+-+-+-+-+-+-+-+
   |   Length      |                  (1 byte)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Requesting NVE Address subTLV   ...         (variable)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | RESV  |  Start VN ID          |  (4 bytes)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | RESV  |  End VN ID            |  (4 byptes)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
Figure 3. Enabled-VN TLV using Range

   +-+-+-+-+-+-+-+-+
   | INT-VN-TYPE-3 |                  (1 byte)
   +-+-+-+-+-+-+-+-+
   |   Length      |                  (1 byte)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Requesting NVE Address subTLV   ...         (variable)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | RESV  |        VN ID          |  (4 bytes)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | RESV  |        VN ID          |  (4 bytes)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | RESV  |        VN ID          |  (4 bytes)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     .   .   .
   +-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4. Enabled-VN TLV using list

-  Type: indicating different ways to express the VNs that NVE is participating: INT-VN-TYPE-1 is for using bit map to express the interested VNs; INT-VN-TYPE-2 is for using range to express the interested VNs (if the interested VNs are contiguous); IT-VN-TYPE-3 is for using individual VN list to express the interested VNs.

Please let us know if you have any issues using this format. 

Thanks, Linda

-----Original Message-----
From: Mingui Zhang 
Sent: Sunday, February 08, 2015 7:12 PM
To: Linda Dunbar
Cc: Tom Herbert; [email-masked]; [email-masked]
Subject: RE: [nvo3] is it resonsable that draft-dunbar-nvo3-nva-mapping-distribution-01 suggests NVE using bit-map to represent its supported VNs?

Hi Linda,

>> Therefore, I think it is better to have a flag indicating if the VNs 
>> are listed individually, Upper/Lower ranges, or bit mapped.
>>
>I wouldn't use a flag for that, it's probably cleaner to define another 
>TLV type that gives a list of VNIDs. Either the list or bit-map can be 
>used interchangeably.

Thanks,
Mingui

>> When a NVE is initialized or re-started, it uses Virtual Network 
>> scoped instances of the IS-IS to announce all the Virtual Networks in 
>> which it is participating.
>>
>>
>>
>> The  current draft-dunbar-nvo3-nva-mapping-distribution-01 suggests 
>> using the bit map to represent the supported VNs.
>>
>>    +-+-+-+-+-+-+-+-+
>>
>>    |     Type      |                  (1 byte)
>>
>>    +-+-+-+-+-+-+-+-+
>>
>>    |   Length      |                  (1 byte)
>>
>> Therefore, I think it is better to have a flag indicating if the VNs 
>> are listed individually, Upper/Lower ranges, or bit mapped.
>>
>I wouldn't use a flag for that, it's probably cleaner to define another 
>TLV type that gives a list of VNIDs. Either the list or bit-map can be 
>used interchangeably.
>
>Tom
>
>>
>>
>> Any other suggestions?
>>
>>
>>
>> Linda
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>