You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Soheil Eizadi <se...@infoblox.com> on 2013/09/07 00:13:08 UTC

DhcpServiceProvider

I had not looked at the DhcpServiceProvider NetworkElement before, but after recent problem, I got a chance to look at it in more detail. I am new to CloudStack and don't have a lot of the history and had some questions.

Is there a link to documentation for the DhcpServiceProvider work?

I assume the main use case for DhcpServiceProvider is to support DHCP Daemon like DNSMasq, are there other use cases?

The interface is simple enough:


public interface DhcpServiceProvider extends NetworkElement {

    boolean addDhcpEntry(...) ...;

    boolean configDhcpSupportForSubnet(...) ...;

    boolean  removeDhcpSupportForSubnet(...) ...;

}


Is there a reason why the companion entry to addDhcpEntry() e.g. removeDhcpEntry() is missing?


What is the motivation in adding this code to the NetworkManager versus contain it inside the NetworkElement providing the DHCP? (The logic I see in NetworkManager does not seem to be adding any value. Also it is adding a specific network function DHCP to the NetworkManager, where we are moving functions e.g. IP Address Allocation out.)

Re: DhcpServiceProvider

Posted by Sheng Yang <sh...@yasker.org>.
That's the good reason to have explicitly remove the old dhcp entries.
Patches are welcome!

--Sheng


On Sat, Sep 14, 2013 at 3:38 PM, Soheil Eizadi <se...@infoblox.com> wrote:

> Thanks for highlighting why remove entry is not implemented. The interface
> works for internal implementation where you have the MS database and a
> separate table in the DHCP server that you are managing. If the DHCP
> Provider is external and authoritative on the IP Address Management or
> trying to provide discovery view this assumption is not valid, and you need
> to explicitly inform it when you want to add an entry and remove one. It
> looks like most External DHCP providers are going to use the standard
> Plugin prepare/release interface, like I have for our solution.
> -Soheil
> ________________________________________
> From: Sheng Yang [sheng@yasker.org]
> Sent: Friday, September 13, 2013 4:23 PM
> To: <de...@cloudstack.apache.org>
> Subject: Re: DhcpServiceProvider
>
> In the original implementation, the new dhcp entry would automatically
> override the old one, so the old entry hasn't been removed explicitly.
>
> But still, it would be better to get it done explicitly of course.
>
> --Sheng
>
>
> On Fri, Sep 13, 2013 at 1:20 PM, Chiradeep Vittal <
> Chiradeep.Vittal@citrix.com> wrote:
>
> > Soheil, agree that it needs to moved to NetworkElement and also needs
> > complementary remove()
> > It seems half-thought-out.
> >
> > On 9/13/13 11:31 AM, "Soheil Eizadi" <se...@infoblox.com> wrote:
> >
> > >Posting my questions again... -Soheil
> > >________________________________________
> > >From: Soheil Eizadi [seizadi@infoblox.com]
> > >Sent: Friday, September 06, 2013 3:13 PM
> > >To: dev@cloudstack.apache.org
> > >Subject: DhcpServiceProvider
> > >
> > >I had not looked at the DhcpServiceProvider NetworkElement before, but
> > >after recent problem, I got a chance to look at it in more detail. I am
> > >new to CloudStack and don't have a lot of the history and had some
> > >questions.
> > >
> > >Is there a link to documentation for the DhcpServiceProvider work?
> > >
> > >I assume the main use case for DhcpServiceProvider is to support DHCP
> > >Daemon like DNSMasq, are there other use cases?
> > >
> > >The interface is simple enough:
> > >
> > >
> > >public interface DhcpServiceProvider extends NetworkElement {
> > >
> > >    boolean addDhcpEntry(...) ...;
> > >
> > >    boolean configDhcpSupportForSubnet(...) ...;
> > >
> > >    boolean  removeDhcpSupportForSubnet(...) ...;
> > >
> > >}
> > >
> > >
> > >Is there a reason why the companion entry to addDhcpEntry() e.g.
> > >removeDhcpEntry() is missing?
> > >
> > >
> > >What is the motivation in adding this code to the NetworkManager versus
> > >contain it inside the NetworkElement providing the DHCP? (The logic I
> see
> > >in NetworkManager does not seem to be adding any value. Also it is
> adding
> > >a specific network function DHCP to the NetworkManager, where we are
> > >moving functions e.g. IP Address Allocation out.)
> >
> >
>

RE: DhcpServiceProvider

Posted by Soheil Eizadi <se...@infoblox.com>.
Thanks for highlighting why remove entry is not implemented. The interface works for internal implementation where you have the MS database and a separate table in the DHCP server that you are managing. If the DHCP Provider is external and authoritative on the IP Address Management or trying to provide discovery view this assumption is not valid, and you need to explicitly inform it when you want to add an entry and remove one. It looks like most External DHCP providers are going to use the standard Plugin prepare/release interface, like I have for our solution.
-Soheil
________________________________________
From: Sheng Yang [sheng@yasker.org]
Sent: Friday, September 13, 2013 4:23 PM
To: <de...@cloudstack.apache.org>
Subject: Re: DhcpServiceProvider

In the original implementation, the new dhcp entry would automatically
override the old one, so the old entry hasn't been removed explicitly.

But still, it would be better to get it done explicitly of course.

--Sheng


On Fri, Sep 13, 2013 at 1:20 PM, Chiradeep Vittal <
Chiradeep.Vittal@citrix.com> wrote:

> Soheil, agree that it needs to moved to NetworkElement and also needs
> complementary remove()
> It seems half-thought-out.
>
> On 9/13/13 11:31 AM, "Soheil Eizadi" <se...@infoblox.com> wrote:
>
> >Posting my questions again... -Soheil
> >________________________________________
> >From: Soheil Eizadi [seizadi@infoblox.com]
> >Sent: Friday, September 06, 2013 3:13 PM
> >To: dev@cloudstack.apache.org
> >Subject: DhcpServiceProvider
> >
> >I had not looked at the DhcpServiceProvider NetworkElement before, but
> >after recent problem, I got a chance to look at it in more detail. I am
> >new to CloudStack and don't have a lot of the history and had some
> >questions.
> >
> >Is there a link to documentation for the DhcpServiceProvider work?
> >
> >I assume the main use case for DhcpServiceProvider is to support DHCP
> >Daemon like DNSMasq, are there other use cases?
> >
> >The interface is simple enough:
> >
> >
> >public interface DhcpServiceProvider extends NetworkElement {
> >
> >    boolean addDhcpEntry(...) ...;
> >
> >    boolean configDhcpSupportForSubnet(...) ...;
> >
> >    boolean  removeDhcpSupportForSubnet(...) ...;
> >
> >}
> >
> >
> >Is there a reason why the companion entry to addDhcpEntry() e.g.
> >removeDhcpEntry() is missing?
> >
> >
> >What is the motivation in adding this code to the NetworkManager versus
> >contain it inside the NetworkElement providing the DHCP? (The logic I see
> >in NetworkManager does not seem to be adding any value. Also it is adding
> >a specific network function DHCP to the NetworkManager, where we are
> >moving functions e.g. IP Address Allocation out.)
>
>

Re: DhcpServiceProvider

Posted by Sheng Yang <sh...@yasker.org>.
In the original implementation, the new dhcp entry would automatically
override the old one, so the old entry hasn't been removed explicitly.

But still, it would be better to get it done explicitly of course.

--Sheng


On Fri, Sep 13, 2013 at 1:20 PM, Chiradeep Vittal <
Chiradeep.Vittal@citrix.com> wrote:

> Soheil, agree that it needs to moved to NetworkElement and also needs
> complementary remove()
> It seems half-thought-out.
>
> On 9/13/13 11:31 AM, "Soheil Eizadi" <se...@infoblox.com> wrote:
>
> >Posting my questions again... -Soheil
> >________________________________________
> >From: Soheil Eizadi [seizadi@infoblox.com]
> >Sent: Friday, September 06, 2013 3:13 PM
> >To: dev@cloudstack.apache.org
> >Subject: DhcpServiceProvider
> >
> >I had not looked at the DhcpServiceProvider NetworkElement before, but
> >after recent problem, I got a chance to look at it in more detail. I am
> >new to CloudStack and don't have a lot of the history and had some
> >questions.
> >
> >Is there a link to documentation for the DhcpServiceProvider work?
> >
> >I assume the main use case for DhcpServiceProvider is to support DHCP
> >Daemon like DNSMasq, are there other use cases?
> >
> >The interface is simple enough:
> >
> >
> >public interface DhcpServiceProvider extends NetworkElement {
> >
> >    boolean addDhcpEntry(...) ...;
> >
> >    boolean configDhcpSupportForSubnet(...) ...;
> >
> >    boolean  removeDhcpSupportForSubnet(...) ...;
> >
> >}
> >
> >
> >Is there a reason why the companion entry to addDhcpEntry() e.g.
> >removeDhcpEntry() is missing?
> >
> >
> >What is the motivation in adding this code to the NetworkManager versus
> >contain it inside the NetworkElement providing the DHCP? (The logic I see
> >in NetworkManager does not seem to be adding any value. Also it is adding
> >a specific network function DHCP to the NetworkManager, where we are
> >moving functions e.g. IP Address Allocation out.)
>
>

Re: DhcpServiceProvider

Posted by Chiradeep Vittal <Ch...@citrix.com>.
Soheil, agree that it needs to moved to NetworkElement and also needs
complementary remove()
It seems half-thought-out.

On 9/13/13 11:31 AM, "Soheil Eizadi" <se...@infoblox.com> wrote:

>Posting my questions again... -Soheil
>________________________________________
>From: Soheil Eizadi [seizadi@infoblox.com]
>Sent: Friday, September 06, 2013 3:13 PM
>To: dev@cloudstack.apache.org
>Subject: DhcpServiceProvider
>
>I had not looked at the DhcpServiceProvider NetworkElement before, but
>after recent problem, I got a chance to look at it in more detail. I am
>new to CloudStack and don't have a lot of the history and had some
>questions.
>
>Is there a link to documentation for the DhcpServiceProvider work?
>
>I assume the main use case for DhcpServiceProvider is to support DHCP
>Daemon like DNSMasq, are there other use cases?
>
>The interface is simple enough:
>
>
>public interface DhcpServiceProvider extends NetworkElement {
>
>    boolean addDhcpEntry(...) ...;
>
>    boolean configDhcpSupportForSubnet(...) ...;
>
>    boolean  removeDhcpSupportForSubnet(...) ...;
>
>}
>
>
>Is there a reason why the companion entry to addDhcpEntry() e.g.
>removeDhcpEntry() is missing?
>
>
>What is the motivation in adding this code to the NetworkManager versus
>contain it inside the NetworkElement providing the DHCP? (The logic I see
>in NetworkManager does not seem to be adding any value. Also it is adding
>a specific network function DHCP to the NetworkManager, where we are
>moving functions e.g. IP Address Allocation out.)


RE: DhcpServiceProvider

Posted by Soheil Eizadi <se...@infoblox.com>.
Posting my questions again... -Soheil
________________________________________
From: Soheil Eizadi [seizadi@infoblox.com]
Sent: Friday, September 06, 2013 3:13 PM
To: dev@cloudstack.apache.org
Subject: DhcpServiceProvider

I had not looked at the DhcpServiceProvider NetworkElement before, but after recent problem, I got a chance to look at it in more detail. I am new to CloudStack and don't have a lot of the history and had some questions.

Is there a link to documentation for the DhcpServiceProvider work?

I assume the main use case for DhcpServiceProvider is to support DHCP Daemon like DNSMasq, are there other use cases?

The interface is simple enough:


public interface DhcpServiceProvider extends NetworkElement {

    boolean addDhcpEntry(...) ...;

    boolean configDhcpSupportForSubnet(...) ...;

    boolean  removeDhcpSupportForSubnet(...) ...;

}


Is there a reason why the companion entry to addDhcpEntry() e.g. removeDhcpEntry() is missing?


What is the motivation in adding this code to the NetworkManager versus contain it inside the NetworkElement providing the DHCP? (The logic I see in NetworkManager does not seem to be adding any value. Also it is adding a specific network function DHCP to the NetworkManager, where we are moving functions e.g. IP Address Allocation out.)