On Wed, Nov 05, 2008 at 11:32:36AM +0800, Uwe Dippel wrote:
> This is the dmesg, and it clearly shows a compatibility problem; under  
> the default as well as under verbose states:
>
>> Nov  5 11:07:07 solN /sbin/dhcpagent[319]: [ID 566172 daemon.warning] 
>> recv_pkt: bad option overload
>> Nov  5 11:13:18 solN last message repeated 17 times
>> Nov  5 11:13:50 solN /sbin/dhcpagent[319]: [ID 566172 daemon.warning] 
>> recv_pkt: bad option overload
>> Nov  5 11:15:50 solN last message repeated 11 times
>> Nov  5 11:16:28 solN /sbin/dhcpagent[1156]: [ID 787751 daemon.error] 
>> dhcp_ipc_init: cannot bind to port 4999 (agent already running?)
>> Nov  5 11:16:53 solN /sbin/dhcpagent[319]: [ID 566172 daemon.warning] 
>> recv_pkt: bad option overload
>
> It is beyond my horizon, what the "recv_pkt: bad option overload" means,  
> but it shows that Solaris is not going to accept offers from the dhcpd  
> of 4.4. Alas, my fault, I have no backup of 4.3, but exactly the same  
> had worked flawlessly throughout up to and including 4.3.
>
> Uwe

OpenSolaris code 
(http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/common/net/dhcp/scan.c)
 show:

150     if (pl->opts[CD_OPTION_OVERLOAD]) {
151             if (pl->opts[CD_OPTION_OVERLOAD]->len != 1) {
152                     pl->opts[CD_OPTION_OVERLOAD] = NULL;
153                     return (DHCP_BAD_OPT_OVLD);
154             }
155             switch (*pl->opts[CD_OPTION_OVERLOAD]->value) {
156             case 1:
157                     field_scan(pkt->file, &pkt->cookie[0], pl->opts,
158                         DHCP_LAST_OPT);
159                     break;
160             case 2:
161                     field_scan(pkt->sname, &pkt->file[0], pl->opts,
162                         DHCP_LAST_OPT);
163                     break;
164             case 3:
165                     field_scan(pkt->file, &pkt->cookie[0], pl->opts,
166                         DHCP_LAST_OPT);
167                     field_scan(pkt->sname, &pkt->file[0], pl->opts,
168                         DHCP_LAST_OPT);
169                     break;
170             default:
171                     pl->opts[CD_OPTION_OVERLOAD] = NULL;
172                     return (DHCP_BAD_OPT_OVLD);
173             }
174     }

Where DHCP_BAD_OPT_OVLD is what appears to print the 'Bad option
overload' message.

And hopefully your trace will show which case is being invoked,
assuming this is the same in the Solaris code you are running.

.... Ken

Reply via email to