X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fsfc%2Fsfc.h;h=02c97d18c5dbff3492b2af880a1698669b2d991b;hb=df1bfde4ff0d;hp=655328fc89d9b8af3e98b0de4162d93a5658ff7d;hpb=e8acb3298d170847c59ddd156e2cec44c636f6d4;p=dpdk.git diff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h index 655328fc89..02c97d18c5 100644 --- a/drivers/net/sfc/sfc.h +++ b/drivers/net/sfc/sfc.h @@ -1,5 +1,7 @@ /*- - * Copyright (c) 2016 Solarflare Communications Inc. + * BSD LICENSE + * + * Copyright (c) 2016-2017 Solarflare Communications Inc. * All rights reserved. * * This software was jointly developed between OKTET Labs (under contract @@ -38,6 +40,8 @@ #include "efx.h" +#include "sfc_filter.h" + #ifdef __cplusplus extern "C" { #endif @@ -125,6 +129,8 @@ struct sfc_mcdi { enum sfc_mcdi_state state; efx_mcdi_transport_t transport; bool logging; + uint32_t proxy_handle; + efx_rc_t proxy_result; }; struct sfc_intr { @@ -136,6 +142,7 @@ struct sfc_intr { struct sfc_evq_info; struct sfc_rxq_info; struct sfc_txq_info; +struct sfc_dp_rx; struct sfc_port { unsigned int lsc_seq; @@ -150,10 +157,18 @@ struct sfc_port { boolean_t promisc; boolean_t allmulti; + unsigned int max_mcast_addrs; + unsigned int nb_mcast_addrs; + uint8_t *mcast_addrs; + rte_spinlock_t mac_stats_lock; uint64_t *mac_stats_buf; efsys_mem_t mac_stats_dma_mem; boolean_t mac_stats_reset_pending; + uint16_t mac_stats_update_period_ms; + uint32_t mac_stats_update_generation; + boolean_t mac_stats_periodic_dma_supported; + uint64_t mac_stats_last_request_timestamp; uint32_t mac_stats_mask[EFX_MAC_STATS_MASK_NPAGES]; }; @@ -180,6 +195,7 @@ struct sfc_adapter { struct sfc_mcdi mcdi; struct sfc_intr intr; struct sfc_port port; + struct sfc_filter filter; unsigned int rxq_max; unsigned int txq_max; @@ -210,6 +226,8 @@ struct sfc_adapter { unsigned int rss_tbl[EFX_RSS_TBL_SIZE]; uint8_t rss_key[SFC_RSS_KEY_SIZE]; #endif + + const struct sfc_dp_rx *dp_rx; }; /* @@ -253,6 +271,13 @@ sfc_adapter_lock_fini(__rte_unused struct sfc_adapter *sa) /* Just for symmetry of the API */ } +/** Get the number of milliseconds since boot from the default timer */ +static inline uint64_t +sfc_get_system_msecs(void) +{ + return rte_get_timer_cycles() * MS_PER_S / rte_get_timer_hz(); +} + int sfc_dma_alloc(const struct sfc_adapter *sa, const char *name, uint16_t id, size_t len, int socket_id, efsys_mem_t *esmp); void sfc_dma_free(const struct sfc_adapter *sa, efsys_mem_t *esmp);