Re: [openstack-dev] [neutron] Re: [Blueprint vlan-aware-vms] VLAN aware VMs

2014-01-08 Thread Erik Moe
I feel that we are getting quite far away from supporting my use case. Use
case: VM wants to connect to different 'normal' Neutron networks from one
VNIC. VLANs are proposed in blueprint since it's a common way to separate
'networks'. It is just a way to connect to different Neutron networks, it
does not put requirements on method used for tenant separation in Neutron.
Ability to specify VID from user is there since, for this use case, the
service would be used by normal tenants, and preferable not exposing
Neutron internals (that might not use VLANS at all for tenant separation).
Also several VMs could specify the same VID for connecting to different
Neutron networks, this to avoid dependencies between tenants.

We would like to have this functionality close to the VNIC, not requiring a
extra 'hop' in the network both for latency, throughput performance and
fault management. The strange optimizations are there because of this.

Also, for this use case, the APIs from a user perspective could be cleaner.

Maybe we should break out this use case from the L2-gateway?

/Erik



On Mon, Dec 23, 2013 at 10:09 PM, Ian Wells ijw.ubu...@cack.org.uk wrote:

 I think we have two different cases here - one where a 'trunk' network
 passes all VLANs, which is potentially supportable by anything that's not
 based on VLANs for separation, and one where a trunk can't feasibly do that
 but where we could make it pass a restricted set of VLANs by mapping.

 In the former case, obviously we need no special awareness of the nature
 of the network to implement an L2 gateway.

 In the latter case, we're looking at a specialisation of networks, one
 where you would first create them with a set of VLANs you wanted to pass
 (and - presumably - the driver would say 'ah, I must allocate multiple
 VLANs to this network rather than just one'.  You've jumped in with two
 optimisations on top of that:

 - we can precalculate the VLANs the network needs to pass in some cases,
 because it's the sum of VLANs that L2 gateways on that network know about
 - we can use L2 gateways to make the mapping from 'tenant' VLANs to
 'overlay' VLANs

 They're good ideas but they add some limitations to what you can do with
 trunk networks that aren't actually necessary in a number of solutions.

 I wonder if we should try the general case first with e.g. a
 Linuxbridge/GRE based infrastructure, and then add the optimisations
 afterwards.  If I were going to do that optimisation I'd start with the
 capability mechanism and add the ability to let the tenant specify the
 specific VLAN tags which must be passed (as you normally would on a
 physical switch). I'd then have two port types - a user-facing one that
 ensures the entry and exit mapping is made on the port, and an
 administrative one which exposes that mapping internally and lets the
 client code (e.g. the L2 gateway) do the mapping itself.  But I think it
 would be complicated, and maybe even has more complexity than is
 immediately apparent (e.g. we're effectively allocating a cluster-wide
 network to get backbone segmentation IDs for each VLAN we pass, which is
 new and different) hence my thought that we should start with the easy case
 first just to have something working, and see how the tenant API feels.  We
 could do this with a basic bit of gateway code running on a system using
 Linuxbridge + GRE, I think - the key seems to be avoiding VLANs in the
 overlay and then the problem is drastically simplified.
 --
 Ian.


 On 21 December 2013 23:00, Erik Moe emoe...@gmail.com wrote:

 Hi Ian,

 I think your VLAN trunking capability proposal can be a good thing, so
 the user can request a Neutron network that can trunk VLANs without caring
 about detailed information regarding which VLANs to pass. This could be
 used for use cases there user wants to pass VLANs between endpoints on a L2
 network etc.

 For the use case there a VM wants to connect to several normal Neutron
 networks using VLANs, I would prefer a solution that did not require a
 Neutron trunk network. Possibly by connecting a L2-gateway directly to the
 Neutron 'vNic' port, or some other solution. IMHO it would be good to map
 VLAN to Neutron network as soon as possible.

 Thanks,
 Erik



 On Thu, Dec 19, 2013 at 2:15 PM, Ian Wells ijw.ubu...@cack.org.ukwrote:

 On 19 December 2013 06:35, Isaku Yamahata isaku.yamah...@gmail.comwrote:


 Hi Ian.

 I can't see your proposal. Can you please make it public viewable?


 Crap, sorry - fixed.


  Even before I read the document I could list three use cases.  Eric's
  covered some of them himself.

 I'm not against trunking.
 I'm trying to understand what requirements need trunk network in
 the figure 1 in addition to L2 gateway directly connected to VM via
 trunk port.


 No problem, just putting the information there for you.

 --
 Ian.

 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 

Re: [openstack-dev] [neutron] Re: [Blueprint vlan-aware-vms] VLAN aware VMs

2013-12-21 Thread Erik Moe
Hi Ian,

I think your VLAN trunking capability proposal can be a good thing, so the
user can request a Neutron network that can trunk VLANs without caring
about detailed information regarding which VLANs to pass. This could be
used for use cases there user wants to pass VLANs between endpoints on a L2
network etc.

For the use case there a VM wants to connect to several normal Neutron
networks using VLANs, I would prefer a solution that did not require a
Neutron trunk network. Possibly by connecting a L2-gateway directly to the
Neutron 'vNic' port, or some other solution. IMHO it would be good to map
VLAN to Neutron network as soon as possible.

Thanks,
Erik



On Thu, Dec 19, 2013 at 2:15 PM, Ian Wells ijw.ubu...@cack.org.uk wrote:

 On 19 December 2013 06:35, Isaku Yamahata isaku.yamah...@gmail.comwrote:


 Hi Ian.

 I can't see your proposal. Can you please make it public viewable?


 Crap, sorry - fixed.


  Even before I read the document I could list three use cases.  Eric's
  covered some of them himself.

 I'm not against trunking.
 I'm trying to understand what requirements need trunk network in
 the figure 1 in addition to L2 gateway directly connected to VM via
 trunk port.


 No problem, just putting the information there for you.

 --
 Ian.

 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron] Re: [Blueprint vlan-aware-vms] VLAN aware VMs

2013-12-19 Thread Ian Wells
On 19 December 2013 06:35, Isaku Yamahata isaku.yamah...@gmail.com wrote:


 Hi Ian.

 I can't see your proposal. Can you please make it public viewable?


Crap, sorry - fixed.


  Even before I read the document I could list three use cases.  Eric's
  covered some of them himself.

 I'm not against trunking.
 I'm trying to understand what requirements need trunk network in
 the figure 1 in addition to L2 gateway directly connected to VM via
 trunk port.


No problem, just putting the information there for you.

-- 
Ian.
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron] Re: [Blueprint vlan-aware-vms] VLAN aware VMs

2013-12-18 Thread Isaku Yamahata

Hi Ian.

I can't see your proposal. Can you please make it public viewable?
Some comments inlined below.

On Wed, Dec 18, 2013 at 01:20:50PM +0100,
Ian Wells ijw.ubu...@cack.org.uk wrote:

 A Neutron network is analagous to a wire between ports.  We can do almost
 everything with this wire - we can pass  both IP and non-IP traffic, I can
 even pass MPLS traffic over it (yes, I tried).  For no rational reason, at
 least if you live north of the API, I sometimes can't pass VLAN traffic
 over it.  You would think this would be in the specification for what a
 network is, but as it happens I don't think we have a specification for
 what a network is in those terms.
 
 I have a counterproposal that I wrote up yesterday [1].  This is the
 absurdly simple approach, taking the position that implementing trunks
 *should* be easy.  That's actually not such a bad position to take, because
 the problem lies with certain plugins (OVS-based setups, basically) - it's
 not a problem with Neutron.
 
 It's very uncompromising, though - it just allows you to request a
 VLAN-clean network.  It would work with OVS code because it allows plugins
 to decline a request, but it doesn't solve the VLAN problem for you, it
 just ensures that you don't run somewhere where your application doesn't
 work, and gives plugins with problems an opportunity for special case
 code.  You could expand it so that you're requesting either a VLAN-safe
 network or a network that passes *specified* VLANs - which is the starting
 position of Eric's document, a plugin-specific solution to a
 plugin-specific problem.
 
 I accept that, for as long as we use VLAN based infrastructure, we have to
 accommodate the fact that VLANs are a special case, but this is very much
 an artifact of the plugin implementation - Linux bridge based network
 infrastructure simply doesn't have this problem, for instance.
 
 On 17 December 2013 06:17, Isaku Yamahata isaku.yamah...@gmail.com wrote:
 
  - 2 Modeling proposal
What's the purpose of trunk network?
Can you please add a use case that trunk network can't be optimized away?
 
 
 Even before I read the document I could list three use cases.  Eric's
 covered some of them himself.

I'm not against trunking.
I'm trying to understand what requirements need trunk network in
the figure 1 in addition to L2 gateway directly connected to VM via
trunk port.

thanks,

 The reasons you might want to have a trunked network passing VLAN traffic:
 1: You're replicating a physical design for simulation purposes [2]
 
 2: There are any number of reasons to use VLANs in a physical design, but
 generally it's a port reduction thing.  In Openstack, clearly I can do this
 a different way - instead of using 30 VLANs over one network with two
 ports, I can use 30 networks with two ports each.  Ports are cheaper when
 you're virtual, but they're not free - KVM has a limitation of, from
 memory, 254 ports per VM.  So I might well still want to use VLANs.  I
 could arbitrarily switch to another encap technology, but this is the tail
 wagging the dog - I have to change my design because Neutron's contract is
 inconsistent.
 
 3: I want to condense many tenant networks into a single VM or physical box
 because I'm using a single VM to offer logically separated services to
 multiple tenants.  This has all the points of (2) basically, that VLANs are
 not the only encap I could use, but they're the conventional one and widely
 supported.  Provider networks do actually offer the functionality you need
 for this already - if you're talking physical - but they would, I think, be
 awkward to use in practice, and they would eat NIC ports on your hosts.
 
 -- 
 Ian.
 
 [1]
 https://docs.google.com/document/d/16DDJLYHxMmbCPO5LxW_kp610oj4goiic_oTakJiXjTs
 [2] http://blogs.cisco.com/wp-content/uploads/network1-550x334.png - a
 network simulator (search for 'Cisco VIRL'). Shameless plug, sorry, but
 it's an Openstack based application and I'm rather proud of it.

 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


-- 
Isaku Yamahata isaku.yamah...@gmail.com

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron] Re: [Blueprint vlan-aware-vms] VLAN aware VMs

2013-12-18 Thread Yi Sun

Ian,
Could you unlock your doc at 
https://docs.google.com/document/d/16DDJLYHxMmbCPO5LxW_kp610oj4goiic_oTakJiXjTs?

It require a permission to read.
Thanks
Yi

On 12/18/13, 4:20 AM, Ian Wells wrote:
A Neutron network is analagous to a wire between ports.  We can do 
almost everything with this wire - we can pass  both IP and non-IP 
traffic, I can even pass MPLS traffic over it (yes, I tried).  For no 
rational reason, at least if you live north of the API, I sometimes 
can't pass VLAN traffic over it.  You would think this would be in the 
specification for what a network is, but as it happens I don't think 
we have a specification for what a network is in those terms.


I have a counterproposal that I wrote up yesterday [1]. This is the 
absurdly simple approach, taking the position that implementing trunks 
*should* be easy.  That's actually not such a bad position to take, 
because the problem lies with certain plugins (OVS-based setups, 
basically) - it's not a problem with Neutron.


It's very uncompromising, though - it just allows you to request a 
VLAN-clean network.  It would work with OVS code because it allows 
plugins to decline a request, but it doesn't solve the VLAN problem 
for you, it just ensures that you don't run somewhere where your 
application doesn't work, and gives plugins with problems an 
opportunity for special case code.  You could expand it so that you're 
requesting either a VLAN-safe network or a network that passes 
*specified* VLANs - which is the starting position of Eric's document, 
a plugin-specific solution to a plugin-specific problem.


I accept that, for as long as we use VLAN based infrastructure, we 
have to accommodate the fact that VLANs are a special case, but this 
is very much an artifact of the plugin implementation - Linux bridge 
based network infrastructure simply doesn't have this problem, for 
instance.


On 17 December 2013 06:17, Isaku Yamahata isaku.yamah...@gmail.com 
mailto:isaku.yamah...@gmail.com wrote:


- 2 Modeling proposal
  What's the purpose of trunk network?
  Can you please add a use case that trunk network can't be
optimized away?


Even before I read the document I could list three use cases.  Eric's 
covered some of them himself.


The reasons you might want to have a trunked network passing VLAN traffic:
1: You're replicating a physical design for simulation purposes [2]

2: There are any number of reasons to use VLANs in a physical design, 
but generally it's a port reduction thing.  In Openstack, clearly I 
can do this a different way - instead of using 30 VLANs over one 
network with two ports, I can use 30 networks with two ports each.  
Ports are cheaper when you're virtual, but they're not free - KVM has 
a limitation of, from memory, 254 ports per VM. So I might well still 
want to use VLANs.  I could arbitrarily switch to another encap 
technology, but this is the tail wagging the dog - I have to change my 
design because Neutron's contract is inconsistent.


3: I want to condense many tenant networks into a single VM or 
physical box because I'm using a single VM to offer logically 
separated services to multiple tenants. This has all the points of (2) 
basically, that VLANs are not the only encap I could use, but they're 
the conventional one and widely supported.  Provider networks do 
actually offer the functionality you need for this already - if you're 
talking physical - but they would, I think, be awkward to use in 
practice, and they would eat NIC ports on your hosts.


--
Ian.

[1] 
https://docs.google.com/document/d/16DDJLYHxMmbCPO5LxW_kp610oj4goiic_oTakJiXjTs
[2] http://blogs.cisco.com/wp-content/uploads/network1-550x334.png - a 
network simulator (search for 'Cisco VIRL'). Shameless plug, sorry, 
but it's an Openstack based application and I'm rather proud of it.



___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron] Re: [Blueprint vlan-aware-vms] VLAN aware VMs

2013-12-17 Thread Kyle Mestery
On Dec 16, 2013, at 11:17 PM, Isaku Yamahata isaku.yamah...@gmail.com wrote:
 Added openstack-dev
 
 On Mon, Dec 16, 2013 at 11:34:05PM +0100,
 Erik Moe emoe...@gmail.com wrote:
 
 Hi,
 
 I have added a new document to the launchpad. Document should now be more
 in line with what we discussed at the Icehouse summit.
 
 https://blueprints.launchpad.net/neutron/+spec/vlan-aware-vms
 
 Doc:
 https://docs.google.com/document/d/1lDJ31-XqkjjWC-IBq-_wV1KVhi7DzPkKYlCxTIPs_9U/edit?usp=sharing
 
 You are very welcome to give feedback if this is the solution you had in
 mind.
 
 The document is view-only. So I commented below.
 
 - 2 Modeling proposal
  What's the purpose of trunk network?
  Can you please add a use case that trunk network can't be optimized away?
 
IMHO, the trunk network is one which carries VLAN tagged traffic. However,
I'm wondering if this is explicitly needed or not as well.

Thanks,
Kyle

 - 4 IP address management
  nitpick
  Can you please clarify what the L2 gateway ports in section 2
  modeling proposal, figure 1?
 
 - Table 3
  Will this be same to l2-gateway one?
  https://blueprints.launchpad.net/neutron/+spec/l2-gateway
 
 - Figure 5
  What's the purpose of br-int local VID?
  VID can be directly converted from br-eth1 VID to VM VID untagged.




___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron] Re: [Blueprint vlan-aware-vms] VLAN aware VMs

2013-12-17 Thread Erik Moe
Hi,

thanks for your comments.

see answers below.

Thanks,
Erik


On Tue, Dec 17, 2013 at 6:17 AM, Isaku Yamahata isaku.yamah...@gmail.comwrote:

 Added openstack-dev

 The document is view-only. So I commented below.

 - 2 Modeling proposal
   What's the purpose of trunk network?
   Can you please add a use case that trunk network can't be optimized away?


In some use cases the trunk network will trunk all VLANS from a VM, so they
can for example be 'tunneled' to another VM or externally. In the use case
where a VM wants to connect to multiple Neutron networks, the trunk network
is a logical connection between the VM trunk port and the L2-gateways. From
my point of view it looks a little strange for this use case, but I think
this is what we said during our meeting in Hong Kong (Unless I
misunderstood something...).

I added use case where two VMs are connected through a trunk network. This
can not be optimized away. The network would have to be able to trunk all
VLANs between the VMs.



 - 4 IP address management
   nitpick
   Can you please clarify what the L2 gateway ports in section 2
   modeling proposal, figure 1?


I have now tried to clarify this more.


 - Table 3
   Will this be same to l2-gateway one?
   https://blueprints.launchpad.net/neutron/+spec/l2-gateway


I will try to align to this and maybe other proposals as much as possible.
Just wanted to have some feedback before I do too many assumptions.


 - Figure 5
   What's the purpose of br-int local VID?
   VID can be directly converted from br-eth1 VID to VM VID untagged.


Unless something has changed, all vNICs handled by OVS-agent are connected
to br-int. br-int has a local VID for separating traffic. br-int is
connected to one or more other bridges representing one or more physical
networks. The br-int VID is mapped to a per bridge VID, so two separate
Neutron networks could have the same VID on two different physical networks.




 --
 Isaku Yamahata isaku.yamah...@gmail.com

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron] Re: [Blueprint vlan-aware-vms] VLAN aware VMs

2013-12-17 Thread Yi Sun



On 12/17/13, 6:36 AM, Erik Moe wrote:


Hi,

thanks for your comments.

see answers below.

Thanks,
Erik


On Tue, Dec 17, 2013 at 6:17 AM, Isaku Yamahata 
isaku.yamah...@gmail.com mailto:isaku.yamah...@gmail.com wrote:


Added openstack-dev

The document is view-only. So I commented below.

- 2 Modeling proposal
  What's the purpose of trunk network?
  Can you please add a use case that trunk network can't be
optimized away?


In some use cases the trunk network will trunk all VLANS from a VM, so 
they can for example be 'tunneled' to another VM or externally. In the 
use case where a VM wants to connect to multiple Neutron networks, the 
trunk network is a logical connection between the VM trunk port and 
the L2-gateways. From my point of view it looks a little strange for 
this use case, but I think this is what we said during our meeting in 
Hong Kong (Unless I misunderstood something...).


I added use case where two VMs are connected through a trunk network. 
This can not be optimized away. The network would have to be able to 
trunk all VLANs between the VMs.
I see the case where admin user wants to have more than one L2 gateways 
to talk to the same VM trunk port. Also, these L2 gateways may connected 
to the untagged networks that belongs different tenants. The trunk 
network should belong to a single tenant though.

Yi

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] [neutron] Re: [Blueprint vlan-aware-vms] VLAN aware VMs

2013-12-16 Thread Isaku Yamahata
Added openstack-dev

On Mon, Dec 16, 2013 at 11:34:05PM +0100,
Erik Moe emoe...@gmail.com wrote:

 Hi,
 
 I have added a new document to the launchpad. Document should now be more
 in line with what we discussed at the Icehouse summit.
 
 https://blueprints.launchpad.net/neutron/+spec/vlan-aware-vms
 
 Doc:
 https://docs.google.com/document/d/1lDJ31-XqkjjWC-IBq-_wV1KVhi7DzPkKYlCxTIPs_9U/edit?usp=sharing
 
 You are very welcome to give feedback if this is the solution you had in
 mind.

The document is view-only. So I commented below.

- 2 Modeling proposal
  What's the purpose of trunk network?
  Can you please add a use case that trunk network can't be optimized away?

- 4 IP address management
  nitpick
  Can you please clarify what the L2 gateway ports in section 2
  modeling proposal, figure 1?

- Table 3
  Will this be same to l2-gateway one?
  https://blueprints.launchpad.net/neutron/+spec/l2-gateway

- Figure 5
  What's the purpose of br-int local VID?
  VID can be directly converted from br-eth1 VID to VM VID untagged.

-- 
Isaku Yamahata isaku.yamah...@gmail.com

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev