Project

General

Profile

Actions

Bug #12496

closed

bge mac address initialization is wrong

Added by Robert Mustacchi over 1 year ago. Updated over 1 year 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
Actions #1

Updated by Robert Mustacchi over 1 year ago

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

Updated by Robert Mustacchi over 1 year ago

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

Updated by Robert Mustacchi over 1 year ago

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

Updated by Robert Mustacchi over 1 year ago

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

Updated by Robert Mustacchi over 1 year 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
Actions #6

Updated by Electric Monk over 1 year 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>

Actions #7

Updated by Marcel Telka about 1 year ago

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

Also available in: Atom PDF