Send kea-dev mailing list submissions to
        kea-dev@lists.isc.org

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.isc.org/mailman/listinfo/kea-dev
or, via email, send a message with subject or body 'help' to
        kea-dev-requ...@lists.isc.org

You can reach the person managing the list at
        kea-dev-ow...@lists.isc.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of kea-dev digest..."


Today's Topics:

   1.  Fwd: Need Help with modifying the source code of the ISC
      DHCP server to send certain vender specific options to client
      eventhough the client doesnot request it in ORO (Anoop Sreedharan)
   2. Re:  Fwd: Need Help with modifying the source code of the ISC
      DHCP server to send certain vender specific options to client
      eventhough the client doesnot request it in ORO (Ola Thoresen)
   3. Re:  Fwd: Need Help with modifying the source code of the ISC
      DHCP server to send certain vender specific options to client
      eventhough the client doesnot request it in ORO (Tomek Mrugalski)


----------------------------------------------------------------------

Message: 1
Date: Fri, 14 Oct 2016 13:11:27 +0530
From: Anoop Sreedharan <t.aanoo...@gmail.com>
To: kea-dev@lists.isc.org
Subject: [kea-dev] Fwd: Need Help with modifying the source code of
        the ISC DHCP server to send certain vender specific options to client
        eventhough the client doesnot request it in ORO
Message-ID:
        <CACy0pi2FKhEUUJbYnwgLkieZ82Vh0ij2WtPDtA9GEa7TrCG=b...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

---- Mailing again without screenshot to reduce size ----

Hello Team,

First of all i am sending out this broadcast message to the developer list
i got from the ISC site. hope it is to correct group else appreciate if
anyone could help to divert to the right people.

*Nature of request*: Need help for some proprietary implementation of the
DHCP server implementation for version 6.

*Problem statement:* I have a host of clients that can be enabled to to
send DHCPv6 solicit request, but the problem is that my client doesnot add
vender specific request in its ORO field.

So in effect i am not able to send the tftp servers and boot file name in
vender specific option 17 suboption 32 and 33 field.

*Help required*: i have read RFC's and found that standard based DHCP
server's doesnot send options other than what is requested by the client.

So need help to bypass this standard based limitations (Limitation is
actually my client's but what the heck!!!) so that the server sends this
suboption 32 and 3 that i configure in the *dhcpd6.con*f file to the
clients as per this .conf file.


*Analysis done:* i have analyzed the dhcpv6.c file and am of the opinion
that the file dhcpv6.c is configured to send some static options to client
other than what was requested via the ORO. So the question is can this be
modified to always read the venderspecific options configured in the
dhcpd6.conf file?
*and the bigger question, can anyone help me out on this. *

*plz reach me out on my mail or skype id as i am very much in need to sort
it out.*


-- 
*Regards,*
*T Anoop Sreedharan*
*+91-9022078298*
*Skype: anoop.thek*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<https://lists.isc.org/pipermail/kea-dev/attachments/20161014/616afbcd/attachment-0001.html>

------------------------------

Message: 2
Date: Fri, 14 Oct 2016 09:53:24 +0200
From: Ola Thoresen <o...@nytt.no>
To: kea-dev@lists.isc.org
Subject: Re: [kea-dev] Fwd: Need Help with modifying the source code
        of the ISC DHCP server to send certain vender specific options to
        client eventhough the client doesnot request it in ORO
Message-ID: <316f90e8-b7c2-fd31-747c-6cccb74d6...@nytt.no>
Content-Type: text/plain; charset=windows-1252; format=flowed

This list is for development of the Kea DHCP-server, not the "old" dhcpd.

And even if I can not help you directly with your problem, it sounds 
like you are trying to achieve something I made a "hook" for Kea to do.
https://github.com/Olen/kea_hooks

This hook is for DHCPv4, but it could easily be extended to DHCPv6 as 
well.  Unfortunately I have not been able to maintain the hook and 
upgrade it to work with newer releases of Kea (it might work, I have 
just not tested it).  But I would _love_ it if someone forked the code 
and started fixing it up.
I simply do not have the skill, nor the time, to keep up.



Rgds.

Ola Thoresen




On 14. okt. 2016 09:41, Anoop Sreedharan wrote:
> ---- Mailing again without screenshot to reduce size ----
>
> Hello Team,
>
> First of all i am sending out this broadcast message to the developer
> list i got from the ISC site. hope it is to correct group else
> appreciate if anyone could help to divert to the right people.
>
> *Nature of request*: Need help for some proprietary implementation of
> the DHCP server implementation for version 6.
>
> *Problem statement:* I have a host of clients that can be enabled to to
> send DHCPv6 solicit request, but the problem is that my client doesnot
> add vender specific request in its ORO field.
>
>     So in effect i am not able to send the tftp servers and boot file
>     name in vender specific option 17 suboption 32 and 33 field.
>
> *Help required*: i have read RFC's and found that standard based DHCP
> server's doesnot send options other than what is requested by the client.
>
>     So need help to bypass this standard based limitations (Limitation
>     is actually my client's but what the heck!!!) so that the server
>     sends this suboption 32 and 3 that i configure in the *dhcpd6.con*f
>     file to the clients as per this .conf file.
>
>
> *Analysis done:* i have analyzed the dhcpv6.c file and am of the opinion
> that the file dhcpv6.c is configured to send some static options to
> client other than what was requested via the ORO. So the question is can
> this be modified to always read the venderspecific options configured in
> the dhcpd6.conf file?
> *and the bigger question, can anyone help me out on this. *
>
> *plz reach me out on my mail or skype id as i am very much in need to
> sort it out.*
> *
> *
> *
> *
> --
> /Regards,/
> /T Anoop Sreedharan/
> /+91-9022078298/
> /Skype: anoop.thek/
> /
> /
>
>
>
>
>
> _______________________________________________
> kea-dev mailing list
> kea-dev@lists.isc.org
> https://lists.isc.org/mailman/listinfo/kea-dev
>


------------------------------

Message: 3
Date: Fri, 14 Oct 2016 10:44:48 +0200
From: Tomek Mrugalski <tom...@isc.org>
To: kea-dev@lists.isc.org
Subject: Re: [kea-dev] Fwd: Need Help with modifying the source code
        of the ISC DHCP server to send certain vender specific options to
        client eventhough the client doesnot request it in ORO
Message-ID: <645c7869-1919-a105-626f-d005fd9b9...@isc.org>
Content-Type: text/plain; charset="windows-1252"

Hi Anoop,

First of all, the list you're posting to - kea-dev - is dedicated to
discussions related to development of Kea, ISC's new implementation. The
files you mentioned are from ISC DHCP. If you want to discuss them, the
best list would be either dhcp-workers (which sadly has very little
traffic, but code related topics are discussed there occasionally) or
dhcp-users (that has a lot of subscribers, but many of them are users,
not developers).

Now that you came to the kea-dev, maybe you can consider migrating you
DHCP server to Kea? Kea sources are much better documented, so any
modifications you may need to do are easier to conduct. But before I get
to specific changes you need to make, here's a bit of background.

You want your clients to receive vendor options, even though they didn't
request it. Vendor options work slightly differently than regular
options, because they're... well, vendor specific. In a network you may
have clients from different vendors and each client could request a
vendor option. To tell the difference between them, entreprise-id field
was introduced in vendor and vendor-class options. This is basically the
client saying "I was built by vendor 1234 and would like to get vendor
options specific for vendor 1234". Then the server knows which options
to send. In your case the information about the enterprise of the client
is not present, so the server won't assign any options.

Obviously, the best way forward would be to fix the clients. But since
you're looking into the server modification I presume that's not
possible for whatever reason (because it would take too long, the vendor
is unwilling or unable to modify the code etc).

Failing that, the next best solution would be to use Kea with custom
hook. Hooks is a nice mechanism that allows influencing almost every
step of the packet processing. In your particular case, you should
augment incoming packets, so they'd look like as if they had the vendor
option in them. You should use pkt6_receive hook for that. Then Kea will
process is normally and once it hits the vendor processing code, it will
assign the options.

Third and least preferred option is to mutilate the server code that
does vendor processing to skip all the checks and send the options every
time. This is strongly discouraged for several reasons. First, it may
solve your immediate problem now, but if you need to change anything,
you'd need to hack the server code again. If there are other clients,
that, say, require a different set of vendor options, you'd be out of
luck. Finally, upgrading to future versions would be painful, as you'd
have to port your fixes. You may likely not have that additional time
for every release, so the solution will get stuck on version that gets
older and older.

I hope that was sufficient to convince you to consider option 2, i.e. to
write a hook. Here are some background information that you may find
useful for that. You haven't said that explicitly, but your clients are
cable modems or other cable devices, right?

1. Go to kea.isc.org -> Developer's Guide and see Hooks Framework
section. The direct link is
https://jenkins.isc.org/job/Fedora20_32_doxygen_doc/doxygen/. In
particular, pay close attention to hook developers guide.

2. You should install your hook on pkt6_receive (documentation here:
https://jenkins.isc.org/job/Fedora20_32_doxygen_doc/doxygen/d1/d02/dhcpv6Hooks.html).
This hook provides access to the incoming client's packet via query6
parameter.

3. The hook should more or less look like this:

    // Get query6 parameter from hooks. That's the incoming packet
    Pkt6Ptr query6;
    handle.getArgument("query6", query6);

    // If there's a vendor option in the packet already, do nothing.
    // There may be other clients that are well behaving.
    if (query6->getOption(D6O_VENDOR_OPTS)) {
        return;
    }

    // Create vendor-option for cable modem, enterprise-id=4491 (that's
docsis)
    OptionPtr vendor_opt(new OptionVendor(Option::V6, 4491));

    // This option should have one sub-option with code 1. In DOCSIS world
    // that's an ORO (Option Request Option). It contains a list of docsis
    // options the server is requested to provide.
    boost::shared_ptr<OptionUint16Array>
        subopt(new OptionUint16Array(Option::V6, DOCSIS3_V6_ORO));

    // Insert two option codes into that option
    subopt->addValue(DOCSIS3_V6_TFTP_SERVERS); // code 32
    subopt->addValue(DOCSIS3_V6_CONFIG_FILE);  // code 33

    // Now put the ORO suboption into the vendor-option
    vendor_opt->addOption(subopt);

    // And finally add the option the the incoming packet.
    // With this modification it will look like as if the incoming packet
    // had vendor option in it and requested options 32 and 33.
    query6->addOption(vendor_opt);

I haven't tested the code, so you may need to tweak it a bit to make it
work, but it's more or less correct. That code along with the
explanations above should give you sufficient information to sort that
out. With this hook implemented, you can then normally configure vendor
options as explained in Kea User's Guide.

4. To see how the vendor options are assigned, see
Dhcpv6Srv::appendRequestedVendorOptions in src/bin/dhcp6/dhcp6_srv.cc.

5. Once you have everything up and running, I'd appreciate if you report
how it went. You should probably tell you vendor that his client devices
are broken, too.

Hopefully this mail will be useful for you and possibly for others to
make their first steps with hooks in Kea.

Tomek

On 14/10/16 09:41, Anoop Sreedharan wrote:
> ---- Mailing again without screenshot to reduce size ----
>
> Hello Team,
>
> First of all i am sending out this broadcast message to the developer
> list i got from the ISC site. hope it is to correct group else
> appreciate if anyone could help to divert to the right people.
>
> *Nature of request*: Need help for some proprietary implementation of
> the DHCP server implementation for version 6.
>
> *Problem statement:* I have a host of clients that can be enabled to
> to send DHCPv6 solicit request, but the problem is that my client
> doesnot add vender specific request in its ORO field. 
>
>     So in effect i am not able to send the tftp servers and boot file
>     name in vender specific option 17 suboption 32 and 33 field.
>
> *Help required*: i have read RFC's and found that standard based DHCP
> server's doesnot send options other than what is requested by the client. 
>
>     So need help to bypass this standard based limitations (Limitation
>     is actually my client's but what the heck!!!) so that the server
>     sends this suboption 32 and 3 that i configure in
>     the *dhcpd6.con*f file to the clients as per this .conf file.
>
>
> *Analysis done:* i have analyzed the dhcpv6.c file and am of the
> opinion that the file dhcpv6.c is configured to send some static
> options to client other than what was requested via the ORO. So the
> question is can this be modified to always read the venderspecific
> options configured in the dhcpd6.conf file?
> *and the bigger question, can anyone help me out on this. *
>
> *plz reach me out on my mail or skype id as i am very much in need to
> sort it out.*
> *
> *
> *
> *
> -- 
> /Regards,/
> /T Anoop Sreedharan/
> /+91-9022078298/
> /Skype: anoop.thek/
> /
> /
>
>
>
>
>
> _______________________________________________
> kea-dev mailing list
> kea-dev@lists.isc.org
> https://lists.isc.org/mailman/listinfo/kea-dev


-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<https://lists.isc.org/pipermail/kea-dev/attachments/20161014/ff4b5012/attachment.html>

------------------------------

Subject: Digest Footer

_______________________________________________
kea-dev mailing list
kea-dev@lists.isc.org
https://lists.isc.org/mailman/listinfo/kea-dev

------------------------------

End of kea-dev Digest, Vol 31, Issue 4
**************************************

Reply via email to