Print this page
11493 aggr needs support for multiple pseudo rx groups
Portions contributed by: Dan McDonald <danmcd@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>

@@ -19,10 +19,11 @@
  * CDDL HEADER END
  */
 /*
  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ * Copyright 2018 Joyent, Inc.
  */
 
 /*
  * MAC Services Module
  */

@@ -1001,10 +1002,11 @@
 
 void
 mac_ring_stat_create(mac_ring_t *ring)
 {
         mac_impl_t      *mip = ring->mr_mip;
+        mac_group_t     *grp = (mac_group_t *)ring->mr_gh;
         char            statname[MAXNAMELEN];
         char            modname[MAXNAMELEN];
 
         if (mip->mi_state_flags & MIS_IS_AGGR) {
                 (void) strlcpy(modname, mip->mi_clients_list->mci_name,

@@ -1012,12 +1014,12 @@
         } else
                 (void) strlcpy(modname, mip->mi_name, MAXNAMELEN);
 
         switch (ring->mr_type) {
         case MAC_RING_TYPE_RX:
-                (void) snprintf(statname, sizeof (statname), "mac_rx_ring%d",
-                    ring->mr_index);
+                (void) snprintf(statname, sizeof (statname),
+                    "mac_rx_ring_%d_%d", grp->mrg_index, ring->mr_index);
                 i_mac_rx_ring_stat_create(ring, modname, statname);
                 break;
 
         case MAC_RING_TYPE_TX:
                 (void) snprintf(statname, sizeof (statname), "mac_tx_ring%d",