If a value is given, it overrides /var/db/dhcpcd/duid.
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd November 20, 2020
+.Dd November 25, 2020
.Dt DHCPCD 8
.Os
.Sh NAME
.Ar script
instead of the default
.Pa @SCRIPT@ .
-.It Fl D , Fl Fl duid
+.It Fl D , Fl Fl duid Op Ar ll | lt | uuid | value
Use a DHCP Unique Identifier.
If a system UUID is available, that will be used to create a DUID-UUID,
otheriwse if persistent storage is available then a DUID-LLT
(link local address + time) is generated,
otherwise DUID-LL is generated (link local address).
+The DUID type can be hinted as an optional parameter if the file
+.Pa @DBDIR@/duid
+does not exist.
+If not
+.Va ll ,
+.Va lt
+or
+.Va uuid
+then
+.Va value
+will be converted from 00:11:22:33 format.
This, plus the IAID will be used as the
.Fl I , Fl Fl clientid .
The DUID generated will be held in
.Pa @DBDIR@/duid
and should not be copied to other hosts.
-This file also takes precedence over the above rules.
+This file also takes precedence over the above rules except for setting a value.
.It Fl d , Fl Fl debug
Echo debug messages to the stderr and syslog.
.It Fl E , Fl Fl lastlease
{
char buf[DUID_LEN * 3];
- if (ctx->duid != NULL)
+ if (ctx->duid != NULL) {
+ if (ifp == NULL)
+ goto log;
return;
+ }
duid_init(ctx, ifp);
if (ctx->duid == NULL)
return;
+log:
loginfox("DUID %s",
hwaddr_ntoa(ctx->duid, ctx->duid_len, buf, sizeof(buf)));
}
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 25, 2020
+.Dd November 25, 2020
.Dt DHCPCD.CONF 5
.Os
.Sh NAME
sends a default
.Ar clientid
of the hardware family and the hardware address.
-.It Ic duid Op ll | lt | uuid
+.It Ic duid Op ll | lt | uuid | value
Use a DHCP Unique Identifier.
If a system UUID is available, that will be used to create a DUID-UUID,
otheriwse if persistent storage is available then a DUID-LLT
The DUID type can be hinted as an optional parameter if the file
.Pa @DBDIR@/duid
does not exist.
+If not
+.Va ll ,
+.Va lt
+or
+.Va uuid
+then
+.Va value
+will be converted from 00:11:22:33 format.
This, plus the IAID will be used as the
.Ic clientid .
The DUID generated will be held in
.Pa @DBDIR@/duid
and should not be copied to other hosts.
-This file also takes precedence over the above rules.
+This file also takes precedence over the above rules except for setting a value.
.It Ic iaid Ar iaid
Set the Interface Association Identifier to
.Ar iaid .
else if (strcmp(arg, "uuid") == 0)
ctx->duid_type = DUID_UUID;
else {
- logwarnx("%s: invalid duid type", arg);
- ctx->duid_type = DUID_DEFAULT;
+ dl = hwaddr_aton(NULL, arg);
+ if (dl != 0) {
+ no = realloc(ctx->duid, dl);
+ if (no == NULL)
+ logerrx(__func__);
+ else {
+ ctx->duid = no;
+ ctx->duid_len = hwaddr_aton(no, arg);
+ }
+ }
}
break;
case 'E':