/illumos-gate/usr/src/uts/common/io/mac/ |
H A D | mac_flow.c | 217 flow_entry_t *flent = *flentp; in mac_flow_create() local 226 if (flent == NULL) { in mac_flow_create() 227 flent = kmem_cache_alloc(flow_cache, KM_SLEEP); in mac_flow_create() 228 bzero(flent, sizeof (*flent)); in mac_flow_create() 229 mutex_init(&flent->fe_lock, NULL, MUTEX_DEFAULT, NULL); in mac_flow_create() 230 cv_init(&flent->fe_cv, NULL, CV_DEFAULT, NULL); in mac_flow_create() 233 flent->fe_cb_fn = (flow_fn_t)mac_rx_def; in mac_flow_create() 234 flent->fe_index = -1; in mac_flow_create() 236 (void) strlcpy(flent->fe_flow_name, name, MAXFLOWNAMELEN); in mac_flow_create() 240 *flentp = flent; in mac_flow_create() [all …]
|
H A D | mac_datapath_setup.c | 611 mac_compute_soft_ring_count(flow_entry_t *flent, int rx_srs_cnt, int maxcpus) in mac_compute_soft_ring_count() argument 616 mac_client_impl_t *mcip = flent->fe_mcip; in mac_compute_soft_ring_count() 618 ASSERT(!(flent->fe_type & FLOW_USER)); in mac_compute_soft_ring_count() 619 if (flent->fe_resource_props.mrp_mask & MRP_MAXBW && in mac_compute_soft_ring_count() 623 bw = flent->fe_resource_props.mrp_maxbw; in mac_compute_soft_ring_count() 631 flent->fe_nic_speed = mac_client_stat_get(flent->fe_mcip, in mac_compute_soft_ring_count() 634 if (((flent->fe_nic_speed)/1000000) > 1000 && in mac_compute_soft_ring_count() 719 mac_tx_cpu_init(flow_entry_t *flent, mac_resource_props_t *mrp, in mac_tx_cpu_init() argument 722 mac_soft_ring_set_t *tx_srs = flent->fe_tx_srs; in mac_tx_cpu_init() 731 if (RETARGETABLE_CLIENT((mac_group_t *)flent->fe_tx_ring_group, in mac_tx_cpu_init() [all …]
|
H A D | mac_client.c | 616 flow_entry_t *flent = mcip->mci_flent; in mac_client_stat_get() local 623 mac_srs = (mac_soft_ring_set_t *)(flent->fe_tx_srs); in mac_client_stat_get() 669 for (i = 0; i < flent->fe_rx_srs_cnt; i++) { in mac_client_stat_get() 670 mac_srs = (mac_soft_ring_set_t *)flent->fe_rx_srs[i]; in mac_client_stat_get() 679 for (i = 0; i < flent->fe_rx_srs_cnt; i++) { in mac_client_stat_get() 680 mac_srs = (mac_soft_ring_set_t *)flent->fe_rx_srs[i]; in mac_client_stat_get() 690 for (i = 0; i < flent->fe_rx_srs_cnt; i++) { in mac_client_stat_get() 691 mac_srs = (mac_soft_ring_set_t *)flent->fe_rx_srs[i]; in mac_client_stat_get() 783 i_mac_flow_vid(flow_entry_t *flent) in i_mac_flow_vid() argument 787 mac_flow_get_desc(flent, &flow_desc); in i_mac_flow_vid() [all …]
|
H A D | mac_stat.c | 682 flow_entry_t *flent = handle; in i_mac_misc_stat_get() local 683 mac_client_impl_t *mcip = flent->fe_mcip; in i_mac_misc_stat_get() 803 i_mac_misc_stat_create(flow_entry_t *flent, const char *modname, in i_mac_misc_stat_create() argument 808 ksp = i_mac_stat_create(flent, modname, statname, in i_mac_misc_stat_create() 812 flent->fe_misc_stat_ksp = ksp; in i_mac_misc_stat_create() 1039 flow_entry_t *flent = mac_srs->srs_flent; in mac_srs_stat_create() local 1044 if ((flent->fe_type & FLOW_USER) != 0) in mac_srs_stat_create() 1060 i_mac_tx_swlane_stat_create(mac_srs, flent->fe_flow_name, in mac_srs_stat_create() 1069 flent->fe_flow_name, statname); in mac_srs_stat_create() 1074 flent->fe_flow_name, statname); in mac_srs_stat_create() [all …]
|
H A D | mac.c | 1578 flow_entry_t *flent = mcip->mci_flent; in mac_hwrings_get() local 1584 grp = flent->fe_rx_ring_group; in mac_hwrings_get() 1586 grp = flent->fe_tx_ring_group; in mac_hwrings_get() 1743 flow_entry_t *flent = mcip->mci_flent; in mac_client_set_flow_cb() local 1745 mutex_enter(&flent->fe_lock); in mac_client_set_flow_cb() 1746 flent->fe_cb_fn = (flow_fn_t)func; in mac_client_set_flow_cb() 1747 flent->fe_cb_arg1 = arg1; in mac_client_set_flow_cb() 1748 flent->fe_cb_arg2 = NULL; in mac_client_set_flow_cb() 1749 flent->fe_flags &= ~FE_MC_NO_DATAPATH; in mac_client_set_flow_cb() 1750 mutex_exit(&flent->fe_lock); in mac_client_set_flow_cb() [all …]
|
H A D | mac_bcast.c | 150 flow_entry_t *flent; in mac_bcast_send() local 171 flent = dst_mcip->mci_flent; in mac_bcast_send() 172 if (flent == NULL || dst_mcip == src_mcip) { in mac_bcast_send() 187 FLOW_TRY_REFHOLD(flent, err); in mac_bcast_send() 204 FLOW_REFRELE(flent); in mac_bcast_send() 503 flow_entry_t *flent; in mac_bcast_delete() local 601 flent = grp->mbg_flow_ent; in mac_bcast_delete() 603 mac_flow_remove(mip->mi_flow_tab, flent, B_FALSE); in mac_bcast_delete() 604 mac_flow_wait(flent, FLOW_DRIVER_UPCALL); in mac_bcast_delete() 605 FLOW_FINAL_REFRELE(flent); in mac_bcast_delete()
|
H A D | mac_provider.c | 818 flow_entry_t *flent; in mac_rx_common() local 823 flent = mip->mi_single_active_client->mci_flent_list; in mac_rx_common() 824 FLOW_TRY_REFHOLD(flent, err); in mac_rx_common() 827 (flent->fe_cb_fn)(flent->fe_cb_arg1, in mac_rx_common() 828 flent->fe_cb_arg2, mp_chain, B_FALSE); in mac_rx_common() 829 FLOW_REFRELE(flent); in mac_rx_common() 1106 flow_entry_t *flent; in mac_ring_intr_retarget() local 1115 flent = mcip->mci_flent; in mac_ring_intr_retarget() 1117 for (i = 0; i < flent->fe_rx_srs_cnt; i++) { in mac_ring_intr_retarget() 1118 mac_rx_srs = flent->fe_rx_srs[i]; in mac_ring_intr_retarget() [all …]
|
H A D | mac_sched.c | 3205 flow_entry_t *flent = NULL; in mac_rx_srs_subflow_process() local 3229 FLOW_INBOUND, &flent); in mac_rx_srs_subflow_process() 3231 if (mp == mp_chain || flent == prev_flent) { in mac_rx_srs_subflow_process() 3234 prev_flent = flent; in mac_rx_srs_subflow_process() 3235 flent = NULL; in mac_rx_srs_subflow_process() 3254 prev_flent = flent; in mac_rx_srs_subflow_process() 3255 flent = NULL; in mac_rx_srs_subflow_process() 4257 flow_entry_t *flent = NULL; in mac_tx_classify() local 4264 err = mac_flow_lookup(mip->mi_flow_tab, mp, FLOW_OUTBOUND, &flent); in mac_tx_classify() 4274 if ((mcip = flent->fe_mcip) != NULL && mcip->mci_flent != flent) { in mac_tx_classify() [all …]
|
H A D | mac_util.c | 1935 flow_entry_t *flent = mcip->mci_flent; in mac_client_set_intr_cpu() local 1944 if (flent != NULL && flent->fe_rx_srs_cnt == 2) { in mac_client_set_intr_cpu() 1945 rx_srs = flent->fe_rx_srs[1]; in mac_client_set_intr_cpu() 1958 flow_entry_t *flent = mcip->mci_flent; in mac_client_intr_cpu() local 1968 if (mac_is_primary_client(mcip) && flent->fe_rx_srs_cnt == 2) { in mac_client_intr_cpu() 1969 rx_srs = flent->fe_rx_srs[1]; in mac_client_intr_cpu()
|
/illumos-gate/usr/src/uts/common/sys/ |
H A D | mac_flow_impl.h | 45 #define FLOW_REFHOLD(flent) { \ argument 46 DTRACE_PROBE1(flow_refhold, flow_entry_t *, (flent)); \ 47 mutex_enter(&(flent)->fe_lock); \ 48 (flent)->fe_refcnt++; \ 49 mutex_exit(&(flent)->fe_lock); \ 59 #define FLOW_TRY_REFHOLD(flent, err) { \ argument 60 DTRACE_PROBE1(flow_refhold, flow_entry_t *, (flent)); \ 62 mutex_enter(&(flent)->fe_lock); \ 63 if ((flent)->fe_flags & (FE_INCIPIENT | FE_QUIESCE | FE_CONDEMNED | \ 67 (flent)->fe_refcnt++; \ [all …]
|
/illumos-gate/usr/src/cmd/mdb/common/modules/mac/ |
H A D | mac.c | 982 flow_entry_t flent; in mac_ring_dcmd() local 996 bzero(&flent, sizeof (flent)); in mac_ring_dcmd() 998 (void) mdb_vread(&flent, sizeof (flent), in mac_ring_dcmd() 1015 group.mrg_mh, ring.mr_srs, flent.fe_flow_name); in mac_ring_dcmd()
|