Project

General

Profile

Bug #12496

bge mac address initialization is wrong

Added by Robert Mustacchi 8 months ago. Updated 8 months ago.

Status:
Closed
Priority:
Normal
Category:
driver - device drivers
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

The way that bge does its mac addresses initailization and management isn't quite correct. When updates for the 5719/5720 was done it disabled the use of the MAC features for using rings and groups and restored the old unicast mac address setting. The way that it did this was that it set all for receive address registers and set the tracking state to indicate that they were used during initialization.

However, when the unicast entry point was called, it used the rings mac address related functions. However, it thought all of the unicast addresses were available, but they weren't actually because that was tracked in a different way. These basically ended up leading us to walk over the array of mac addresses and actually end up dereferencing beyond the end of an array of mac addresses. While there were ASSERTS there, they weren't found until testing on a debug build for 12450.


Related issues

Related to illumos gate - Feature #3446: Update bge to support missing 57xx/577xx devicesClosedDan McDonald2015-04-06

Actions
Related to illumos gate - Feature #12450: Add support for BCM57765 family devices to bgeClosedRobert Mustacchi

Actions
Related to illumos gate - Bug #12497: bge ape locking left always disabled after 7513ClosedRobert Mustacchi

Actions
Related to illumos gate - Bug #12498: bge ring interrupt masking logic is brokenClosedRobert Mustacchi

Actions
Related to illumos gate - Bug #12686: dladm: vnic creation over bge0 failed: object already existsClosed

Actions
#1

Updated by Robert Mustacchi 8 months ago

  • Related to Feature #3446: Update bge to support missing 57xx/577xx devices added
#2

Updated by Robert Mustacchi 8 months ago

  • Related to Feature #12450: Add support for BCM57765 family devices to bge added
#3

Updated by Robert Mustacchi 8 months ago

  • Related to Bug #12497: bge ape locking left always disabled after 7513 added
#4

Updated by Robert Mustacchi 8 months ago

  • Related to Bug #12498: bge ring interrupt masking logic is broken added
#5

Updated by Robert Mustacchi 8 months ago

We tested this on three different devices, which covers three different chipset families in bge(7D):

  • BCM5719
  • BCM57781
  • BCM5723

In all cases we exercised parts of the following bits of functionality:

  • IPv4, IPv6
  • VNICs
  • Link Aggregation (LACP)
  • Basic gigabit TCP saturation (over NFS, SCP, etc.) and data validation
#6

Updated by Electric Monk 8 months ago

  • Status changed from New to Closed
  • % Done changed from 90 to 100

git commit 9e717e77bf4b9b5ad279c38a2311c076468e85f5

commit  9e717e77bf4b9b5ad279c38a2311c076468e85f5
Author: Robert Mustacchi <rm@fingolfin.org>
Date:   2020-04-22T06:18:18.000Z

    12496 bge mac address initialization is wrong
    12497 bge ape locking left always disabled after 7513
    12498 bge ring interrupt masking logic is broken
    Reviewed by: Paul Winder <paul@winders.demon.co.uk>
    Approved by: Dan McDonald <danmcd@joyent.com>

#7

Updated by Marcel Telka 7 months ago

  • Related to Bug #12686: dladm: vnic creation over bge0 failed: object already exists added

Also available in: Atom PDF