Page MenuHomeFreeBSD

D7615.id19585.diff
No OneTemporary

D7615.id19585.diff

Index: sbin/ifconfig/af_link.c
===================================================================
--- sbin/ifconfig/af_link.c
+++ sbin/ifconfig/af_link.c
@@ -90,13 +90,23 @@
if (which != ADDR)
errx(1, "can't set link-level netmask or broadcast");
- if ((temp = malloc(strlen(addr) + 2)) == NULL)
- errx(1, "malloc failed");
- temp[0] = ':';
- strcpy(temp + 1, addr);
- sdl.sdl_len = sizeof(sdl);
- link_addr(temp, &sdl);
- free(temp);
+ if (!strcmp(addr, "random")) {
+ sdl.sdl_len = sizeof(sdl);
+ sdl.sdl_alen = ETHER_ADDR_LEN;
+ sdl.sdl_nlen = 0;
+ sdl.sdl_family = AF_LINK;
+ arc4random_buf(&sdl.sdl_data, ETHER_ADDR_LEN);
+ /* Non-multicast and claim it is a hardware address */
+ sdl.sdl_data[0] &= 0xfc;
+ } else {
+ if ((temp = malloc(strlen(addr) + 2)) == NULL)
+ errx(1, "malloc failed");
+ temp[0] = ':';
+ strcpy(temp + 1, addr);
+ sdl.sdl_len = sizeof(sdl);
+ link_addr(temp, &sdl);
+ free(temp);
+ }
if (sdl.sdl_alen > sizeof(sa->sa_data))
errx(1, "malformed link-level address");
sa->sa_family = AF_LINK;
Index: sbin/ifconfig/ifconfig.8
===================================================================
--- sbin/ifconfig/ifconfig.8
+++ sbin/ifconfig/ifconfig.8
@@ -28,7 +28,7 @@
.\" From: @(#)ifconfig.8 8.3 (Berkeley) 1/5/94
.\" $FreeBSD$
.\"
-.Dd June 8, 2016
+.Dd August 24, 2016
.Dt IFCONFIG 8
.Os
.Sh NAME
@@ -145,6 +145,9 @@
This can be used to, for example,
set a new MAC address on an Ethernet interface, though the
mechanism used is not Ethernet specific.
+To set a randomly generated MAC address use the
+.Pq Dq random
+keyword.
If the interface is already
up when this option is used, it will be briefly brought down and
then brought back up again in order to ensure that the receive
@@ -254,7 +257,7 @@
.br
255.255.0.0 or 255.255.255.192
.It Sy hex
-Display subnet masks in hexidecimal, for example:
+Display subnet masks in hexadecimal, for example:
.br
0xffff0000 or 0xffffffc0
.El
@@ -2615,13 +2618,13 @@
.Cm vlandev
must both be set at the same time.
.It Cm vlanpcp Ar priority_code_point
-Priority code point
+Priority code point
.Pq Dv PCP
is an 3-bit field which refers to the IEEE 802.1p
class of service and maps to the frame priority level.
.Pp
Values in order of priority are:
-.Cm 1
+.Cm 1
.Pq Dv Background (lowest) ,
.Cm 0
.Pq Dv Best effort (default) ,
@@ -2759,7 +2762,7 @@
broadcasting the frame to the multicast group.
This is the default.
.It Fl vxlanlearn
-The forwarding table is not populated by recevied packets.
+The forwarding table is not populated by received packets.
.It Cm vxlanflush
Delete all dynamically-learned addresses from the forwarding table.
.It Cm vxlanflushall

File Metadata

Mime Type
text/plain
Expires
Fri, May 15, 4:23 AM (41 m, 32 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33072785
Default Alt Text
D7615.id19585.diff (2 KB)

Event Timeline