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>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/mac_impl.h
          +++ new/usr/src/uts/common/sys/mac_impl.h
↓ open down ↓ 200 lines elided ↑ open up ↑
 201  201  #define MR_QUIESCE      0x4
 202  202  
 203  203  typedef struct mac_impl_s mac_impl_t;
 204  204  
 205  205  struct mac_ring_s {
 206  206          int                     mr_index;       /* index in the original list */
 207  207          mac_ring_type_t         mr_type;        /* ring type */
 208  208          mac_ring_t              *mr_next;       /* next ring in the chain */
 209  209          mac_group_handle_t      mr_gh;          /* reference to group */
 210  210  
 211      -        mac_classify_type_t     mr_classify_type;       /* HW vs SW */
      211 +        mac_classify_type_t     mr_classify_type;
 212  212          struct mac_soft_ring_set_s *mr_srs;     /* associated SRS */
 213      -        mac_ring_handle_t       mr_prh;         /* associated pseudo ring hdl */
      213 +        mac_ring_handle_t       mr_prh; /* associated pseudo ring hdl */
      214 +
      215 +        /*
      216 +         * Ring passthru callback and arguments. See the
      217 +         * MAC_PASSTHRU_CLASSIFIER comment in mac_provider.h.
      218 +         */
      219 +        mac_rx_t                mr_pt_fn;
      220 +        void                    *mr_pt_arg1;
      221 +        mac_resource_handle_t   mr_pt_arg2;
      222 +
 214  223          uint_t                  mr_refcnt;      /* Ring references */
 215  224          /* ring generation no. to guard against drivers using stale rings */
 216  225          uint64_t                mr_gen_num;
 217  226  
 218  227          kstat_t                 *mr_ksp;        /* ring kstats */
 219  228          mac_impl_t              *mr_mip;        /* pointer to primary's mip */
 220  229  
 221  230          kmutex_t                mr_lock;
 222  231          kcondvar_t              mr_cv;                  /* mr_lock */
 223  232          mac_ring_state_t        mr_state;               /* mr_lock */
↓ open down ↓ 732 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX