Lines Matching refs:softmac

31  * When the softmac fast-path is used, a dedicated lower-stream
44 * softmac fast-path must be disabled to support GLDv3 VNIC functionality.
50 * By default, the softmac fast-path mode will be used to assure the
51 * performance; MAC clients will be able to request to disable the softmac
53 * the system will fallback to the slow-path softmac data-path model.
56 * The details of the softmac data fast-path model is stated as below
58 * 1. When a stream is opened on a softMAC, the softmac module will takes
61 * 2. For IP/ARP streams over a softMAC, softmac data fast-path will be
63 * explicitly. The softmac module first identifies an IP/ARP stream
68 * 3. When the softmac fast-path is used, an dedicated lower-stream will
75 * 4. When the softmac data fast-path is disabled by a MAC client (e.g.,
88 * 1) To switch the softmac data-path mode (between fast-path and slow-path),
89 * softmac will first send a DL_NOTE_REPLUMB DL_NOTIFY_IND message
105 * 3) When softmac receives the DL_NOTE_REPLUMB_DONE message, it either
107 * data-path mode the softMAC switches to), and change the softmac
108 * data-path mode. From then on, softmac will process all the succeeding
307 softmac_t *softmac = sup->su_softmac;
321 * Direct capability negotiation interface between IP and softmac
332 if (softmac->smac_capab_flags & MAC_CAPAB_HCKSUM) {
341 if (!(softmac->smac_capab_flags & MAC_CAPAB_NO_ZCOPY)) {
347 if (softmac->smac_mdt) {
408 hcksum.hcksum_txflags = softmac->smac_hcksum_txflags;
449 mdt.mdt_hdr_head = softmac->smac_mdt_capab.mdt_hdr_head;
450 mdt.mdt_hdr_tail = softmac->smac_mdt_capab.mdt_hdr_tail;
451 mdt.mdt_max_pld = softmac->smac_mdt_capab.mdt_max_pld;
452 mdt.mdt_span_limit = softmac->smac_mdt_capab.mdt_span_limit;
550 softmac_t *softmac = sup->su_softmac;
587 * Check whether this softmac is already marked as exclusively used,
590 mutex_enter(&softmac->smac_active_mutex);
591 if (softmac->smac_active) {
592 mutex_exit(&softmac->smac_active_mutex);
596 softmac->smac_nactive++;
598 mutex_exit(&softmac->smac_active_mutex);
614 softmac_t *softmac = sup->su_softmac;
653 mutex_enter(&softmac->smac_active_mutex);
655 ASSERT(!softmac->smac_active);
656 softmac->smac_nactive--;
659 mutex_exit(&softmac->smac_active_mutex);
671 softmac_t *softmac = sup->su_softmac;
700 mutex_enter(&softmac->smac_fp_mutex);
702 expected_mode = DATAPATH_MODE(softmac);
705 list_insert_head(&softmac->smac_sup_list, sup);
706 mutex_exit(&softmac->smac_fp_mutex);
737 * and queued by the softmac itself, when the
836 * This thread is started when the softmac module is first loaded.
915 softmac_t *softmac = sup->su_softmac;
919 err = softmac_lower_setup(softmac, sup, &slp);
1058 softmac_t *softmac = arg;
1060 mutex_enter(&softmac->smac_active_mutex);
1061 if (softmac->smac_nactive != 0) {
1062 mutex_exit(&softmac->smac_active_mutex);
1065 softmac->smac_active = B_TRUE;
1066 mutex_exit(&softmac->smac_active_mutex);
1073 softmac_t *softmac = arg;
1075 mutex_enter(&softmac->smac_active_mutex);
1076 ASSERT(softmac->smac_active && (softmac->smac_nactive == 0));
1077 softmac->smac_active = B_FALSE;
1078 mutex_exit(&softmac->smac_active_mutex);
1082 * Disable/reenable fastpath on given softmac. This request could come from a
1086 softmac_datapath_switch(softmac_t *softmac, boolean_t disable, boolean_t admin)
1095 mutex_enter(&softmac->smac_fp_mutex);
1097 current_mode = DATAPATH_MODE(softmac);
1099 if (softmac->smac_fastpath_admin_disabled == disable) {
1100 mutex_exit(&softmac->smac_fp_mutex);
1103 softmac->smac_fastpath_admin_disabled = disable;
1105 softmac->smac_fp_disable_clients++;
1107 ASSERT(softmac->smac_fp_disable_clients != 0);
1108 softmac->smac_fp_disable_clients--;
1111 expected_mode = DATAPATH_MODE(softmac);
1113 mutex_exit(&softmac->smac_fp_mutex);
1119 * this softmac is expected from last request, enqueue the data-path
1129 for (sup = list_head(&softmac->smac_sup_list); sup != NULL;
1130 sup = list_next(&softmac->smac_sup_list, sup)) {
1181 for (sup = list_head(&softmac->smac_sup_list); sup != NULL;
1182 sup = list_next(&softmac->smac_sup_list, sup)) {
1198 mutex_exit(&softmac->smac_fp_mutex);
1204 softmac->smac_fastpath_admin_disabled = !disable;
1206 softmac->smac_fp_disable_clients--;
1208 softmac->smac_fp_disable_clients++;
1211 mutex_exit(&softmac->smac_fp_mutex);
1237 softmac_t *softmac = sup->su_softmac;
1240 mutex_enter(&softmac->smac_fp_mutex);
1246 list_remove(&softmac->smac_sup_list, sup);
1257 mutex_exit(&softmac->smac_fp_mutex);
1267 softmac_t *softmac = sup->su_softmac;
1271 mutex_enter(&softmac->smac_fp_mutex);
1278 mutex_exit(&softmac->smac_fp_mutex);
1283 mutex_exit(&softmac->smac_fp_mutex);