Re: [openstack-dev] How to write a new neutron L2 plugin using ML2 framework?

2014-02-11 Thread Mathieu Rohon
Hi,

mellanox is also developing a ML2 driver :
https://blueprints.launchpad.net/neutron/+spec/mlnx-ml2-support

The Havana release is already out, and we are currently working for
IceHouse. But the code for IceHouse should be under review before feb.
18th. So it would be difficult to have your code included in IceHouse.
I think you'd better targeting Juno, the next release.

On Tue, Feb 11, 2014 at 7:40 AM, Yang, Yi Y  wrote:
> Thank you for your detailed info, but I want to implement this in Havana 
> release, mlnx is a good reference, what I want to implement on Intel NIC is 
> similar to mlnx, but it is a standalone plugin and didn't use ML2 framework, 
> I want to use ML2 framework, I think nova has supported SR-IOV in Havana, so 
> I just need to implement Neutron part, I hope you can provide some guide 
> about this. BTW, We can't afford to wait Icehouse release.
>
> -Original Message-
> From: Irena Berezovsky [mailto:ire...@mellanox.com]
> Sent: Monday, February 10, 2014 8:11 PM
> To: OpenStack Development Mailing List (not for usage questions)
> Cc: Yang, Yi Y
> Subject: RE: [openstack-dev] How to write a new neutron L2 plugin using ML2 
> framework?
>
> Hi,
> As stated below, we are already having this work both in nova and neuron.
> Please take a look at the following discussions:
> https://wiki.openstack.org/wiki/Meetings#PCI_Passthrough_Meeting
>
> For neutron part there are two different flavors that are coming as part of 
> this effort:
> 1. Cisco SRIOV supporting 802.1QBH - no L2 agent 2. Mellanox Flavor - SRIOV 
> embedded switch ("HW_VEB") - with L2 agent.
> My guess is that second flavor of SRIOV embedded switch should work for Intel 
> NICs as well.
>
> Please join the PCI pass-through meeting discussions to see that you do not 
> do any redundant work or just follow-up on mailing list.
>
> BR,
> Irena
>
>
> -Original Message-
> From: Mathieu Rohon [mailto:mathieu.ro...@gmail.com]
> Sent: Monday, February 10, 2014 1:25 PM
> To: OpenStack Development Mailing List (not for usage questions)
> Subject: Re: [openstack-dev] How to write a new neutron L2 plugin using ML2 
> framework?
>
> Hi,
>
> SRIOV is under implementation in nova and neutron. Did you have a look to :
> https://wiki.openstack.org/wiki/PCI_passthrough_SRIOV_support
> https://blueprints.launchpad.net/neutron/+spec/ml2-binding-profile
> https://blueprints.launchpad.net/neutron/+spec/ml2-request-vnic-type
> https://blueprints.launchpad.net/nova/+spec/pci-passthrough-sriov
>
>
> On Mon, Feb 10, 2014 at 7:27 AM, Isaku Yamahata  
> wrote:
>> On Sat, Feb 08, 2014 at 03:49:46AM +, "Yang, Yi Y"
>>  wrote:
>>
>>> Hi, All
>>
>> Hi.
>>
>>
>>> I want to write a new neutron L2 plugin using ML2 framework, I noticed 
>>> openvswitch and linxubridge have been ported into ML2 framework, but it 
>>> seems many code is removed compared to standalone L2 plugin, I guess some 
>>> code has been written into a common library. Now I want to write a L2 
>>> plugin to enable switch for a SR-IOV 10g NIC, I think I need to write as 
>>> follows:
>>
>
> having such a feature would be awesome : did you fill a BP for that?
>
>>
>>> 1. a new mechanism driver neutron/plugins/ml2/drivers/mech_XXX.py, but from 
>>> source code, it seems nothing to do.
>
> You mean, you want to use AgentMechanismDriverBase directly? this is an 
> abstract class du to check_segment_for_agent method.
>
>>
>> This requires to define how your plugin utilize network.
>> If multi tenant network is wanted, what/how technology will be used.
>> The common one is VLAN or tunneling(GRE, VXLAN).
>> This depends on what feature your NIC supports.
>>
>
>>> 2. a new agent neutron/plugins/XXX/ XXX_neutron_plugin.py
>
> I don't know if this would be mandatory. May be you can just add necessary 
> informations with extend_port_dict while your MD bind the port, as proposed 
> by this patch :
> https://review.openstack.org/#/c/69783/
>
> Nova will then configure the port correctly. The only need for an agent would 
> be to populate the agent DB with supported segment types, so that during 
> bind_port, the MD find an appropriate segment (with check_segment_for_agent).
>
>>>
>>> After this, an issue it how to let neutron know it and load it by default 
>>> or by configuration. Debugging is also an issue, nobody can write code 
>>> correctly once :-),  does neutron have any good debugging way for a newbie?
>>
>> LOG.debug and debug middle ware.
>> If there are any other better way, I'd also like to

Re: [openstack-dev] How to write a new neutron L2 plugin using ML2 framework?

2014-02-10 Thread Yang, Yi Y
Thank you for your detailed info, but I want to implement this in Havana 
release, mlnx is a good reference, what I want to implement on Intel NIC is 
similar to mlnx, but it is a standalone plugin and didn't use ML2 framework, I 
want to use ML2 framework, I think nova has supported SR-IOV in Havana, so I 
just need to implement Neutron part, I hope you can provide some guide about 
this. BTW, We can't afford to wait Icehouse release.

-Original Message-
From: Irena Berezovsky [mailto:ire...@mellanox.com] 
Sent: Monday, February 10, 2014 8:11 PM
To: OpenStack Development Mailing List (not for usage questions)
Cc: Yang, Yi Y
Subject: RE: [openstack-dev] How to write a new neutron L2 plugin using ML2 
framework?

Hi,
As stated below, we are already having this work both in nova and neuron.
Please take a look at the following discussions:
https://wiki.openstack.org/wiki/Meetings#PCI_Passthrough_Meeting

For neutron part there are two different flavors that are coming as part of 
this effort:
1. Cisco SRIOV supporting 802.1QBH - no L2 agent 2. Mellanox Flavor - SRIOV 
embedded switch ("HW_VEB") - with L2 agent.
My guess is that second flavor of SRIOV embedded switch should work for Intel 
NICs as well.

Please join the PCI pass-through meeting discussions to see that you do not do 
any redundant work or just follow-up on mailing list.

BR,
Irena


-Original Message-
From: Mathieu Rohon [mailto:mathieu.ro...@gmail.com]
Sent: Monday, February 10, 2014 1:25 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] How to write a new neutron L2 plugin using ML2 
framework?

Hi,

SRIOV is under implementation in nova and neutron. Did you have a look to :
https://wiki.openstack.org/wiki/PCI_passthrough_SRIOV_support
https://blueprints.launchpad.net/neutron/+spec/ml2-binding-profile
https://blueprints.launchpad.net/neutron/+spec/ml2-request-vnic-type
https://blueprints.launchpad.net/nova/+spec/pci-passthrough-sriov


On Mon, Feb 10, 2014 at 7:27 AM, Isaku Yamahata  
wrote:
> On Sat, Feb 08, 2014 at 03:49:46AM +, "Yang, Yi Y" 
>  wrote:
>
>> Hi, All
>
> Hi.
>
>
>> I want to write a new neutron L2 plugin using ML2 framework, I noticed 
>> openvswitch and linxubridge have been ported into ML2 framework, but it 
>> seems many code is removed compared to standalone L2 plugin, I guess some 
>> code has been written into a common library. Now I want to write a L2 plugin 
>> to enable switch for a SR-IOV 10g NIC, I think I need to write as follows:
>

having such a feature would be awesome : did you fill a BP for that?

>
>> 1. a new mechanism driver neutron/plugins/ml2/drivers/mech_XXX.py, but from 
>> source code, it seems nothing to do.

You mean, you want to use AgentMechanismDriverBase directly? this is an 
abstract class du to check_segment_for_agent method.

>
> This requires to define how your plugin utilize network.
> If multi tenant network is wanted, what/how technology will be used.
> The common one is VLAN or tunneling(GRE, VXLAN).
> This depends on what feature your NIC supports.
>

>> 2. a new agent neutron/plugins/XXX/ XXX_neutron_plugin.py

I don't know if this would be mandatory. May be you can just add necessary 
informations with extend_port_dict while your MD bind the port, as proposed by 
this patch :
https://review.openstack.org/#/c/69783/

Nova will then configure the port correctly. The only need for an agent would 
be to populate the agent DB with supported segment types, so that during 
bind_port, the MD find an appropriate segment (with check_segment_for_agent).

>>
>> After this, an issue it how to let neutron know it and load it by default or 
>> by configuration. Debugging is also an issue, nobody can write code 
>> correctly once :-),  does neutron have any good debugging way for a newbie?
>
> LOG.debug and debug middle ware.
> If there are any other better way, I'd also like to know.
>
> thanks,
>
>> I'm very eager to be able to get your help and sincerely thank you in 
>> advance.
>>
>> ___
>> OpenStack-dev mailing list
>> OpenStack-dev@lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
> --
> Isaku Yamahata 
>
> ___
> 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

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


Re: [openstack-dev] How to write a new neutron L2 plugin using ML2 framework?

2014-02-10 Thread Irena Berezovsky
Hi,
As stated below, we are already having this work both in nova and neuron.
Please take a look at the following discussions:
https://wiki.openstack.org/wiki/Meetings#PCI_Passthrough_Meeting

For neutron part there are two different flavors that are coming as part of 
this effort:
1. Cisco SRIOV supporting 802.1QBH - no L2 agent
2. Mellanox Flavor - SRIOV embedded switch ("HW_VEB") - with L2 agent.
My guess is that second flavor of SRIOV embedded switch should work for Intel 
NICs as well.

Please join the PCI pass-through meeting discussions to see that you do not do 
any redundant work or just follow-up on mailing list.

BR,
Irena


-Original Message-
From: Mathieu Rohon [mailto:mathieu.ro...@gmail.com] 
Sent: Monday, February 10, 2014 1:25 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] How to write a new neutron L2 plugin using ML2 
framework?

Hi,

SRIOV is under implementation in nova and neutron. Did you have a look to :
https://wiki.openstack.org/wiki/PCI_passthrough_SRIOV_support
https://blueprints.launchpad.net/neutron/+spec/ml2-binding-profile
https://blueprints.launchpad.net/neutron/+spec/ml2-request-vnic-type
https://blueprints.launchpad.net/nova/+spec/pci-passthrough-sriov


On Mon, Feb 10, 2014 at 7:27 AM, Isaku Yamahata  
wrote:
> On Sat, Feb 08, 2014 at 03:49:46AM +, "Yang, Yi Y" 
>  wrote:
>
>> Hi, All
>
> Hi.
>
>
>> I want to write a new neutron L2 plugin using ML2 framework, I noticed 
>> openvswitch and linxubridge have been ported into ML2 framework, but it 
>> seems many code is removed compared to standalone L2 plugin, I guess some 
>> code has been written into a common library. Now I want to write a L2 plugin 
>> to enable switch for a SR-IOV 10g NIC, I think I need to write as follows:
>

having such a feature would be awesome : did you fill a BP for that?

>
>> 1. a new mechanism driver neutron/plugins/ml2/drivers/mech_XXX.py, but from 
>> source code, it seems nothing to do.

You mean, you want to use AgentMechanismDriverBase directly? this is an 
abstract class du to check_segment_for_agent method.

>
> This requires to define how your plugin utilize network.
> If multi tenant network is wanted, what/how technology will be used.
> The common one is VLAN or tunneling(GRE, VXLAN).
> This depends on what feature your NIC supports.
>

>> 2. a new agent neutron/plugins/XXX/ XXX_neutron_plugin.py

I don't know if this would be mandatory. May be you can just add necessary 
informations with extend_port_dict while your MD bind the port, as proposed by 
this patch :
https://review.openstack.org/#/c/69783/

Nova will then configure the port correctly. The only need for an agent would 
be to populate the agent DB with supported segment types, so that during 
bind_port, the MD find an appropriate segment (with check_segment_for_agent).

>>
>> After this, an issue it how to let neutron know it and load it by default or 
>> by configuration. Debugging is also an issue, nobody can write code 
>> correctly once :-),  does neutron have any good debugging way for a newbie?
>
> LOG.debug and debug middle ware.
> If there are any other better way, I'd also like to know.
>
> thanks,
>
>> I'm very eager to be able to get your help and sincerely thank you in 
>> advance.
>>
>> ___
>> OpenStack-dev mailing list
>> OpenStack-dev@lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
> --
> Isaku Yamahata 
>
> ___
> 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

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


Re: [openstack-dev] How to write a new neutron L2 plugin using ML2 framework?

2014-02-10 Thread Mathieu Rohon
Hi,

SRIOV is under implementation in nova and neutron. Did you have a look to :
https://wiki.openstack.org/wiki/PCI_passthrough_SRIOV_support
https://blueprints.launchpad.net/neutron/+spec/ml2-binding-profile
https://blueprints.launchpad.net/neutron/+spec/ml2-request-vnic-type
https://blueprints.launchpad.net/nova/+spec/pci-passthrough-sriov


On Mon, Feb 10, 2014 at 7:27 AM, Isaku Yamahata
 wrote:
> On Sat, Feb 08, 2014 at 03:49:46AM +,
> "Yang, Yi Y"  wrote:
>
>> Hi, All
>
> Hi.
>
>
>> I want to write a new neutron L2 plugin using ML2 framework, I noticed 
>> openvswitch and linxubridge have been ported into ML2 framework, but it 
>> seems many code is removed compared to standalone L2 plugin, I guess some 
>> code has been written into a common library. Now I want to write a L2 plugin 
>> to enable switch for a SR-IOV 10g NIC, I think I need to write as follows:
>

having such a feature would be awesome : did you fill a BP for that?

>
>> 1. a new mechanism driver neutron/plugins/ml2/drivers/mech_XXX.py, but from 
>> source code, it seems nothing to do.

You mean, you want to use AgentMechanismDriverBase directly? this is
an abstract class du to check_segment_for_agent method.

>
> This requires to define how your plugin utilize network.
> If multi tenant network is wanted, what/how technology will be used.
> The common one is VLAN or tunneling(GRE, VXLAN).
> This depends on what feature your NIC supports.
>

>> 2. a new agent neutron/plugins/XXX/ XXX_neutron_plugin.py

I don't know if this would be mandatory. May be you can just add
necessary informations with extend_port_dict while your MD bind the
port, as proposed by this patch :
https://review.openstack.org/#/c/69783/

Nova will then configure the port correctly. The only need for an
agent would be to populate the agent DB with supported segment types,
so that during bind_port, the MD find an appropriate segment (with
check_segment_for_agent).

>>
>> After this, an issue it how to let neutron know it and load it by default or 
>> by configuration. Debugging is also an issue, nobody can write code 
>> correctly once :-),  does neutron have any good debugging way for a newbie?
>
> LOG.debug and debug middle ware.
> If there are any other better way, I'd also like to know.
>
> thanks,
>
>> I'm very eager to be able to get your help and sincerely thank you in 
>> advance.
>>
>> ___
>> OpenStack-dev mailing list
>> OpenStack-dev@lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
> --
> Isaku Yamahata 
>
> ___
> 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] How to write a new neutron L2 plugin using ML2 framework?

2014-02-09 Thread Isaku Yamahata
On Sat, Feb 08, 2014 at 03:49:46AM +,
"Yang, Yi Y"  wrote:

> Hi, All

Hi.


> I want to write a new neutron L2 plugin using ML2 framework, I noticed 
> openvswitch and linxubridge have been ported into ML2 framework, but it seems 
> many code is removed compared to standalone L2 plugin, I guess some code has 
> been written into a common library. Now I want to write a L2 plugin to enable 
> switch for a SR-IOV 10g NIC, I think I need to write as follows:


> 1. a new mechanism driver neutron/plugins/ml2/drivers/mech_XXX.py, but from 
> source code, it seems nothing to do.

This requires to define how your plugin utilize network.
If multi tenant network is wanted, what/how technology will be used.
The common one is VLAN or tunneling(GRE, VXLAN).
This depends on what feature your NIC supports.


> 2. a new agent neutron/plugins/XXX/ XXX_neutron_plugin.py
> 
> After this, an issue it how to let neutron know it and load it by default or 
> by configuration. Debugging is also an issue, nobody can write code correctly 
> once :-),  does neutron have any good debugging way for a newbie?

LOG.debug and debug middle ware.
If there are any other better way, I'd also like to know.

thanks,

> I'm very eager to be able to get your help and sincerely thank you in advance.
> 
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-- 
Isaku Yamahata 

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