From owner-dev-commits-src-main@freebsd.org Thu Apr 15 20:12:29 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 918D75D5E0D; Thu, 15 Apr 2021 20:12:29 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLr9T3Xrfz4npT; Thu, 15 Apr 2021 20:12:29 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) (Authenticated sender: kevans) by smtp.freebsd.org (Postfix) with ESMTPSA id 6C8C02612D; Thu, 15 Apr 2021 20:12:29 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qk1-f182.google.com with SMTP id o5so26634309qkb.0; Thu, 15 Apr 2021 13:12:29 -0700 (PDT) X-Gm-Message-State: AOAM5324jnKiQyxUYAMpY7A6HeV87BUZ/qk2cWLZ3qyNSqqlFKAYGrk5 C4aWdHkTEcXEbFRTHwuwUWqWXGxv1izSqa1RY/0= X-Google-Smtp-Source: ABdhPJwVP+/0S74h5GR1W3rSNqoxjLr6XPFC9eGhSjmAw5nVuHYs2FjBNAb380D9Gj4V0MieI7hV4Jfn38maLKDWqx4= X-Received: by 2002:a05:620a:b0a:: with SMTP id t10mr5058669qkg.103.1618517549001; Thu, 15 Apr 2021 13:12:29 -0700 (PDT) MIME-Version: 1.0 References: <202104151848.13FImMA5091035@gitrepo.freebsd.org> <5b50b23a-71cd-5221-c905-ccffe841bc98@klop.ws> In-Reply-To: From: Kyle Evans Date: Thu, 15 Apr 2021 15:12:14 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: git: 68a46f11eada - main - e1000: Restore VF interface random MAC To: Kevin Bowling Cc: Ronald Klop , Kevin Bowling , src-committers , "" , dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 20:12:29 -0000 I think it'd be the right choice, but it needs a little work first. e.g., it's not a good fit right now for VMs that don't use loader, for instance, because it relies on the hostuuid actually being somewhat unique or else it generates the same MAC address across different VMs and you end up with conflicts in the broadcast domain. I think there's a good argument to make for having it check if the hostuuid is the default all-0 hostuuid and just generating a random address as this does right now. I might go ahead and prepare such a change and document the KPI in the process. On Thu, Apr 15, 2021 at 3:06 PM Kevin Bowling wrote: > > I would like to discuss this further, it crossed my mind, but none of > the intel drivers currently use it. If this is the right KPI I think > a review should be prepared that updates e1000, ixgbe (ixv), ixl > (iavf) in one go. > > Regards, > Kevin > > On Thu, Apr 15, 2021 at 12:36 PM Kyle Evans wrote: > > > > On Thu, Apr 15, 2021 at 2:32 PM Ronald Klop wrote: > > > > > > On 4/15/21 8:48 PM, Kevin Bowling wrote: > > > > The branch main has been updated by kbowling (ports committer): > > > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=68a46f11eadab48a1da9e3d3900569a6a1ce142e > > > > > > > > commit 68a46f11eadab48a1da9e3d3900569a6a1ce142e > > > > Author: Kevin Bowling > > > > AuthorDate: 2021-04-15 18:45:02 +0000 > > > > Commit: Kevin Bowling > > > > CommitDate: 2021-04-15 18:45:02 +0000 > > > > > > > > e1000: Restore VF interface random MAC > > > > > > > > Restore 525e07418c77 after the iflib conversion of igb(4). This > > > > reenables random MAC address generation when attaching to a VF with a > > > > zeroed MAC. > > > > > > > > PR: 253535 > > > > Reported by: Balaev PA > > > > Reviewed by: markj > > > > MFC after: 2 weeks > > > > Differential Revision: https://reviews.freebsd.org/D29785 > > > > --- > > > > sys/dev/e1000/if_em.c | 21 ++++++++++++++++++--- > > > > 1 file changed, 18 insertions(+), 3 deletions(-) > > > > > > > > diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c > > > > index 6f022c80c01c..79a617b3342f 100644 > > > > --- a/sys/dev/e1000/if_em.c > > > > +++ b/sys/dev/e1000/if_em.c > > > > @@ -1061,9 +1061,17 @@ em_if_attach_pre(if_ctx_t ctx) > > > > } > > > > > > > > if (!em_is_valid_ether_addr(hw->mac.addr)) { > > > > - device_printf(dev, "Invalid MAC address\n"); > > > > - error = EIO; > > > > - goto err_late; > > > > + if (adapter->vf_ifp) { > > > > + u8 addr[ETHER_ADDR_LEN]; > > > > + arc4rand(&addr, sizeof(addr), 0); > > > > + addr[0] &= 0xFE; > > > > + addr[0] |= 0x02; > > > > + bcopy(addr, hw->mac.addr, sizeof(addr)); > > > > + } else { > > > > + device_printf(dev, "Invalid MAC address\n"); > > > > + error = EIO; > > > > + goto err_late; > > > > + } > > > > > > > > > Just curious. Would ether_gen_addr() be useful here? > > > It is implemented in net/if_ethersubr.c. > > > > > > > I had asked myself the same question, but I suspect these machines may > > not necessarily have a hostuuid preloaded to avoid collisions from the > > generated addresses. > > > > Thanks, > > > > Kyle Evans