From owner-svn-src-stable@freebsd.org Thu Mar 29 05:01:50 2018 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A452EF7624D; Thu, 29 Mar 2018 05:01:50 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 57A207A933; Thu, 29 Mar 2018 05:01:50 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 52A3915550; Thu, 29 Mar 2018 05:01:50 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T51o6Z043111; Thu, 29 Mar 2018 05:01:50 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T51oLh043109; Thu, 29 Mar 2018 05:01:50 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201803290501.w2T51oLh043109@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Thu, 29 Mar 2018 05:01:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331729 - stable/11/sbin/ifconfig X-SVN-Group: stable-11 X-SVN-Commit-Author: araujo X-SVN-Commit-Paths: stable/11/sbin/ifconfig X-SVN-Commit-Revision: 331729 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Mar 2018 05:01:51 -0000 Author: araujo Date: Thu Mar 29 05:01:49 2018 New Revision: 331729 URL: https://svnweb.freebsd.org/changeset/base/331729 Log: MFC r305860, r306371 r305860: Add an option called "random" that combined with "ether" can generate a random MAC address for an Ethernet interface. PR: 211984 Submitted by: pi@ Reviewed by: gnn, cem, jhb, lidl, rpokala, wblock Approved by: wblock (manpages) r306371: Indicate that this is a locally administered MAC address. Submitted by: lidl Differential Revision: https://reviews.freebsd.org/D7903 PR: 226459 Requested by: tobik Modified: stable/11/sbin/ifconfig/af_link.c stable/11/sbin/ifconfig/ifconfig.8 Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/ifconfig/af_link.c ============================================================================== --- stable/11/sbin/ifconfig/af_link.c Thu Mar 29 04:51:07 2018 (r331728) +++ stable/11/sbin/ifconfig/af_link.c Thu Mar 29 05:01:49 2018 (r331729) @@ -133,13 +133,24 @@ link_getaddr(const char *addr, int which) 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 locally administered. */ + sdl.sdl_data[0] &= 0xfc; + sdl.sdl_data[0] |= 0x02; + } 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; Modified: stable/11/sbin/ifconfig/ifconfig.8 ============================================================================== --- stable/11/sbin/ifconfig/ifconfig.8 Thu Mar 29 04:51:07 2018 (r331728) +++ stable/11/sbin/ifconfig/ifconfig.8 Thu Mar 29 05:01:49 2018 (r331729) @@ -28,7 +28,7 @@ .\" From: @(#)ifconfig.8 8.3 (Berkeley) 1/5/94 .\" $FreeBSD$ .\" -.Dd June 8, 2016 +.Dd September 17, 2016 .Dt IFCONFIG 8 .Os .Sh NAME @@ -145,6 +145,12 @@ is specified as a series of colon-separated hex digits This can be used to, for example, set a new MAC address on an Ethernet interface, though the mechanism used is not Ethernet specific. +Use the +.Pq Dq random +keyword to set a randomly generated MAC address. +A randomly-generated MAC address might be the same as one already in use +in the network. +Such duplications are extremely unlikely. 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 +260,7 @@ Display subnet masks in dotted quad notation, for exam .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 +2621,13 @@ and .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 +2765,7 @@ interface to send the frame directly to the remote hos 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