aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/vxge/vxge-traffic.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/vxge/vxge-traffic.h')
-rw-r--r--drivers/net/vxge/vxge-traffic.h195
1 files changed, 20 insertions, 175 deletions
diff --git a/drivers/net/vxge/vxge-traffic.h b/drivers/net/vxge/vxge-traffic.h
index 6fa07d13798e..4a518a3b131c 100644
--- a/drivers/net/vxge/vxge-traffic.h
+++ b/drivers/net/vxge/vxge-traffic.h
@@ -240,7 +240,7 @@ struct vxge_hw_tim_intr_config {
240 u32 btimer_val; 240 u32 btimer_val;
241#define VXGE_HW_MIN_TIM_BTIMER_VAL 0 241#define VXGE_HW_MIN_TIM_BTIMER_VAL 0
242#define VXGE_HW_MAX_TIM_BTIMER_VAL 67108864 242#define VXGE_HW_MAX_TIM_BTIMER_VAL 67108864
243#define VXGE_HW_USE_FLASH_DEFAULT 0xffffffff 243#define VXGE_HW_USE_FLASH_DEFAULT (~0)
244 244
245 u32 timer_ac_en; 245 u32 timer_ac_en;
246#define VXGE_HW_TIM_TIMER_AC_ENABLE 1 246#define VXGE_HW_TIM_TIMER_AC_ENABLE 1
@@ -681,7 +681,7 @@ struct vxge_hw_xmac_aggr_stats {
681 * @rx_red_discard: Count of received frames that are discarded because of RED 681 * @rx_red_discard: Count of received frames that are discarded because of RED
682 * (Random Early Discard). 682 * (Random Early Discard).
683 * @rx_xgmii_ctrl_err_cnt: Maintains a count of unexpected or misplaced control 683 * @rx_xgmii_ctrl_err_cnt: Maintains a count of unexpected or misplaced control
684 * characters occuring between times of normal data transmission 684 * characters occurring between times of normal data transmission
685 * (i.e. not included in RX_XGMII_DATA_ERR_CNT). This counter is 685 * (i.e. not included in RX_XGMII_DATA_ERR_CNT). This counter is
686 * incremented when either - 686 * incremented when either -
687 * 1) The Reconciliation Sublayer (RS) is expecting one control 687 * 1) The Reconciliation Sublayer (RS) is expecting one control
@@ -1695,7 +1695,7 @@ struct vxge_hw_device_stats_sw_err {
1695 * struct vxge_hw_device_stats - Contains HW per-device statistics, 1695 * struct vxge_hw_device_stats - Contains HW per-device statistics,
1696 * including hw. 1696 * including hw.
1697 * @devh: HW device handle. 1697 * @devh: HW device handle.
1698 * @dma_addr: DMA addres of the %hw_info. Given to device to fill-in the stats. 1698 * @dma_addr: DMA address of the %hw_info. Given to device to fill-in the stats.
1699 * @hw_info_dmah: DMA handle used to map hw statistics onto the device memory 1699 * @hw_info_dmah: DMA handle used to map hw statistics onto the device memory
1700 * space. 1700 * space.
1701 * @hw_info_dma_acch: One more DMA handle used subsequently to free the 1701 * @hw_info_dma_acch: One more DMA handle used subsequently to free the
@@ -1749,14 +1749,6 @@ vxge_hw_mrpcim_stats_access(
1749 u64 *stat); 1749 u64 *stat);
1750 1750
1751enum vxge_hw_status 1751enum vxge_hw_status
1752vxge_hw_device_xmac_aggr_stats_get(struct __vxge_hw_device *devh, u32 port,
1753 struct vxge_hw_xmac_aggr_stats *aggr_stats);
1754
1755enum vxge_hw_status
1756vxge_hw_device_xmac_port_stats_get(struct __vxge_hw_device *devh, u32 port,
1757 struct vxge_hw_xmac_port_stats *port_stats);
1758
1759enum vxge_hw_status
1760vxge_hw_device_xmac_stats_get(struct __vxge_hw_device *devh, 1752vxge_hw_device_xmac_stats_get(struct __vxge_hw_device *devh,
1761 struct vxge_hw_xmac_stats *xmac_stats); 1753 struct vxge_hw_xmac_stats *xmac_stats);
1762 1754
@@ -1912,34 +1904,6 @@ enum vxge_hw_ring_tcode {
1912 VXGE_HW_RING_T_CODE_MULTI_ERR = 0xF 1904 VXGE_HW_RING_T_CODE_MULTI_ERR = 0xF
1913}; 1905};
1914 1906
1915/**
1916 * enum enum vxge_hw_ring_hash_type - RTH hash types
1917 * @VXGE_HW_RING_HASH_TYPE_NONE: No Hash
1918 * @VXGE_HW_RING_HASH_TYPE_TCP_IPV4: TCP IPv4
1919 * @VXGE_HW_RING_HASH_TYPE_UDP_IPV4: UDP IPv4
1920 * @VXGE_HW_RING_HASH_TYPE_IPV4: IPv4
1921 * @VXGE_HW_RING_HASH_TYPE_TCP_IPV6: TCP IPv6
1922 * @VXGE_HW_RING_HASH_TYPE_UDP_IPV6: UDP IPv6
1923 * @VXGE_HW_RING_HASH_TYPE_IPV6: IPv6
1924 * @VXGE_HW_RING_HASH_TYPE_TCP_IPV6_EX: TCP IPv6 extension
1925 * @VXGE_HW_RING_HASH_TYPE_UDP_IPV6_EX: UDP IPv6 extension
1926 * @VXGE_HW_RING_HASH_TYPE_IPV6_EX: IPv6 extension
1927 *
1928 * RTH hash types
1929 */
1930enum vxge_hw_ring_hash_type {
1931 VXGE_HW_RING_HASH_TYPE_NONE = 0x0,
1932 VXGE_HW_RING_HASH_TYPE_TCP_IPV4 = 0x1,
1933 VXGE_HW_RING_HASH_TYPE_UDP_IPV4 = 0x2,
1934 VXGE_HW_RING_HASH_TYPE_IPV4 = 0x3,
1935 VXGE_HW_RING_HASH_TYPE_TCP_IPV6 = 0x4,
1936 VXGE_HW_RING_HASH_TYPE_UDP_IPV6 = 0x5,
1937 VXGE_HW_RING_HASH_TYPE_IPV6 = 0x6,
1938 VXGE_HW_RING_HASH_TYPE_TCP_IPV6_EX = 0x7,
1939 VXGE_HW_RING_HASH_TYPE_UDP_IPV6_EX = 0x8,
1940 VXGE_HW_RING_HASH_TYPE_IPV6_EX = 0x9
1941};
1942
1943enum vxge_hw_status vxge_hw_ring_rxd_reserve( 1907enum vxge_hw_status vxge_hw_ring_rxd_reserve(
1944 struct __vxge_hw_ring *ring_handle, 1908 struct __vxge_hw_ring *ring_handle,
1945 void **rxdh); 1909 void **rxdh);
@@ -2117,49 +2081,6 @@ struct __vxge_hw_ring_rxd_priv {
2117#endif 2081#endif
2118}; 2082};
2119 2083
2120/* ========================= RING PRIVATE API ============================= */
2121u64
2122__vxge_hw_ring_first_block_address_get(
2123 struct __vxge_hw_ring *ringh);
2124
2125enum vxge_hw_status
2126__vxge_hw_ring_create(
2127 struct __vxge_hw_vpath_handle *vpath_handle,
2128 struct vxge_hw_ring_attr *attr);
2129
2130enum vxge_hw_status
2131__vxge_hw_ring_abort(
2132 struct __vxge_hw_ring *ringh);
2133
2134enum vxge_hw_status
2135__vxge_hw_ring_reset(
2136 struct __vxge_hw_ring *ringh);
2137
2138enum vxge_hw_status
2139__vxge_hw_ring_delete(
2140 struct __vxge_hw_vpath_handle *vpath_handle);
2141
2142/* ========================= FIFO PRIVATE API ============================= */
2143
2144struct vxge_hw_fifo_attr;
2145
2146enum vxge_hw_status
2147__vxge_hw_fifo_create(
2148 struct __vxge_hw_vpath_handle *vpath_handle,
2149 struct vxge_hw_fifo_attr *attr);
2150
2151enum vxge_hw_status
2152__vxge_hw_fifo_abort(
2153 struct __vxge_hw_fifo *fifoh);
2154
2155enum vxge_hw_status
2156__vxge_hw_fifo_reset(
2157 struct __vxge_hw_fifo *ringh);
2158
2159enum vxge_hw_status
2160__vxge_hw_fifo_delete(
2161 struct __vxge_hw_vpath_handle *vpath_handle);
2162
2163struct vxge_hw_mempool_cbs { 2084struct vxge_hw_mempool_cbs {
2164 void (*item_func_alloc)( 2085 void (*item_func_alloc)(
2165 struct vxge_hw_mempool *mempoolh, 2086 struct vxge_hw_mempool *mempoolh,
@@ -2169,10 +2090,6 @@ struct vxge_hw_mempool_cbs {
2169 u32 is_last); 2090 u32 is_last);
2170}; 2091};
2171 2092
2172void
2173__vxge_hw_mempool_destroy(
2174 struct vxge_hw_mempool *mempool);
2175
2176#define VXGE_HW_VIRTUAL_PATH_HANDLE(vpath) \ 2093#define VXGE_HW_VIRTUAL_PATH_HANDLE(vpath) \
2177 ((struct __vxge_hw_vpath_handle *)(vpath)->vpath_handles.next) 2094 ((struct __vxge_hw_vpath_handle *)(vpath)->vpath_handles.next)
2178 2095
@@ -2195,61 +2112,10 @@ __vxge_hw_vpath_rts_table_set(
2195 u64 data2); 2112 u64 data2);
2196 2113
2197enum vxge_hw_status 2114enum vxge_hw_status
2198__vxge_hw_vpath_reset(
2199 struct __vxge_hw_device *devh,
2200 u32 vp_id);
2201
2202enum vxge_hw_status
2203__vxge_hw_vpath_sw_reset(
2204 struct __vxge_hw_device *devh,
2205 u32 vp_id);
2206
2207enum vxge_hw_status
2208__vxge_hw_vpath_enable( 2115__vxge_hw_vpath_enable(
2209 struct __vxge_hw_device *devh, 2116 struct __vxge_hw_device *devh,
2210 u32 vp_id); 2117 u32 vp_id);
2211 2118
2212void
2213__vxge_hw_vpath_prc_configure(
2214 struct __vxge_hw_device *devh,
2215 u32 vp_id);
2216
2217enum vxge_hw_status
2218__vxge_hw_vpath_kdfc_configure(
2219 struct __vxge_hw_device *devh,
2220 u32 vp_id);
2221
2222enum vxge_hw_status
2223__vxge_hw_vpath_mac_configure(
2224 struct __vxge_hw_device *devh,
2225 u32 vp_id);
2226
2227enum vxge_hw_status
2228__vxge_hw_vpath_tim_configure(
2229 struct __vxge_hw_device *devh,
2230 u32 vp_id);
2231
2232enum vxge_hw_status
2233__vxge_hw_vpath_initialize(
2234 struct __vxge_hw_device *devh,
2235 u32 vp_id);
2236
2237enum vxge_hw_status
2238__vxge_hw_vp_initialize(
2239 struct __vxge_hw_device *devh,
2240 u32 vp_id,
2241 struct vxge_hw_vp_config *config);
2242
2243void
2244__vxge_hw_vp_terminate(
2245 struct __vxge_hw_device *devh,
2246 u32 vp_id);
2247
2248enum vxge_hw_status
2249__vxge_hw_vpath_alarm_process(
2250 struct __vxge_hw_virtualpath *vpath,
2251 u32 skip_alarms);
2252
2253void vxge_hw_device_intr_enable( 2119void vxge_hw_device_intr_enable(
2254 struct __vxge_hw_device *devh); 2120 struct __vxge_hw_device *devh);
2255 2121
@@ -2276,6 +2142,10 @@ void vxge_hw_device_clear_tx_rx(
2276 * Virtual Paths 2142 * Virtual Paths
2277 */ 2143 */
2278 2144
2145void vxge_hw_vpath_dynamic_rti_rtimer_set(struct __vxge_hw_ring *ring);
2146
2147void vxge_hw_vpath_dynamic_tti_rtimer_set(struct __vxge_hw_fifo *fifo);
2148
2279u32 vxge_hw_vpath_id( 2149u32 vxge_hw_vpath_id(
2280 struct __vxge_hw_vpath_handle *vpath_handle); 2150 struct __vxge_hw_vpath_handle *vpath_handle);
2281 2151
@@ -2288,27 +2158,27 @@ enum vxge_hw_vpath_mac_addr_add_mode {
2288enum vxge_hw_status 2158enum vxge_hw_status
2289vxge_hw_vpath_mac_addr_add( 2159vxge_hw_vpath_mac_addr_add(
2290 struct __vxge_hw_vpath_handle *vpath_handle, 2160 struct __vxge_hw_vpath_handle *vpath_handle,
2291 u8 (macaddr)[ETH_ALEN], 2161 u8 *macaddr,
2292 u8 (macaddr_mask)[ETH_ALEN], 2162 u8 *macaddr_mask,
2293 enum vxge_hw_vpath_mac_addr_add_mode duplicate_mode); 2163 enum vxge_hw_vpath_mac_addr_add_mode duplicate_mode);
2294 2164
2295enum vxge_hw_status 2165enum vxge_hw_status
2296vxge_hw_vpath_mac_addr_get( 2166vxge_hw_vpath_mac_addr_get(
2297 struct __vxge_hw_vpath_handle *vpath_handle, 2167 struct __vxge_hw_vpath_handle *vpath_handle,
2298 u8 (macaddr)[ETH_ALEN], 2168 u8 *macaddr,
2299 u8 (macaddr_mask)[ETH_ALEN]); 2169 u8 *macaddr_mask);
2300 2170
2301enum vxge_hw_status 2171enum vxge_hw_status
2302vxge_hw_vpath_mac_addr_get_next( 2172vxge_hw_vpath_mac_addr_get_next(
2303 struct __vxge_hw_vpath_handle *vpath_handle, 2173 struct __vxge_hw_vpath_handle *vpath_handle,
2304 u8 (macaddr)[ETH_ALEN], 2174 u8 *macaddr,
2305 u8 (macaddr_mask)[ETH_ALEN]); 2175 u8 *macaddr_mask);
2306 2176
2307enum vxge_hw_status 2177enum vxge_hw_status
2308vxge_hw_vpath_mac_addr_delete( 2178vxge_hw_vpath_mac_addr_delete(
2309 struct __vxge_hw_vpath_handle *vpath_handle, 2179 struct __vxge_hw_vpath_handle *vpath_handle,
2310 u8 (macaddr)[ETH_ALEN], 2180 u8 *macaddr,
2311 u8 (macaddr_mask)[ETH_ALEN]); 2181 u8 *macaddr_mask);
2312 2182
2313enum vxge_hw_status 2183enum vxge_hw_status
2314vxge_hw_vpath_vid_add( 2184vxge_hw_vpath_vid_add(
@@ -2321,11 +2191,6 @@ vxge_hw_vpath_vid_get(
2321 u64 *vid); 2191 u64 *vid);
2322 2192
2323enum vxge_hw_status 2193enum vxge_hw_status
2324vxge_hw_vpath_vid_get_next(
2325 struct __vxge_hw_vpath_handle *vpath_handle,
2326 u64 *vid);
2327
2328enum vxge_hw_status
2329vxge_hw_vpath_vid_delete( 2194vxge_hw_vpath_vid_delete(
2330 struct __vxge_hw_vpath_handle *vpath_handle, 2195 struct __vxge_hw_vpath_handle *vpath_handle,
2331 u64 vid); 2196 u64 vid);
@@ -2384,19 +2249,14 @@ void
2384vxge_hw_vpath_msix_mask(struct __vxge_hw_vpath_handle *vpath_handle, 2249vxge_hw_vpath_msix_mask(struct __vxge_hw_vpath_handle *vpath_handle,
2385 int msix_id); 2250 int msix_id);
2386 2251
2387void vxge_hw_device_flush_io(struct __vxge_hw_device *devh); 2252void vxge_hw_vpath_msix_clear(struct __vxge_hw_vpath_handle *vp, int msix_id);
2388 2253
2389void 2254void vxge_hw_device_flush_io(struct __vxge_hw_device *devh);
2390vxge_hw_vpath_msix_clear(struct __vxge_hw_vpath_handle *vpath_handle,
2391 int msix_id);
2392 2255
2393void 2256void
2394vxge_hw_vpath_msix_unmask(struct __vxge_hw_vpath_handle *vpath_handle, 2257vxge_hw_vpath_msix_unmask(struct __vxge_hw_vpath_handle *vpath_handle,
2395 int msix_id); 2258 int msix_id);
2396 2259
2397void
2398vxge_hw_vpath_msix_mask_all(struct __vxge_hw_vpath_handle *vpath_handle);
2399
2400enum vxge_hw_status vxge_hw_vpath_intr_enable( 2260enum vxge_hw_status vxge_hw_vpath_intr_enable(
2401 struct __vxge_hw_vpath_handle *vpath_handle); 2261 struct __vxge_hw_vpath_handle *vpath_handle);
2402 2262
@@ -2415,11 +2275,8 @@ vxge_hw_channel_msix_mask(struct __vxge_hw_channel *channelh, int msix_id);
2415void 2275void
2416vxge_hw_channel_msix_unmask(struct __vxge_hw_channel *channelh, int msix_id); 2276vxge_hw_channel_msix_unmask(struct __vxge_hw_channel *channelh, int msix_id);
2417 2277
2418enum vxge_hw_status
2419vxge_hw_channel_dtr_alloc(struct __vxge_hw_channel *channel, void **dtrh);
2420
2421void 2278void
2422vxge_hw_channel_dtr_post(struct __vxge_hw_channel *channel, void *dtrh); 2279vxge_hw_channel_msix_clear(struct __vxge_hw_channel *channelh, int msix_id);
2423 2280
2424void 2281void
2425vxge_hw_channel_dtr_try_complete(struct __vxge_hw_channel *channel, 2282vxge_hw_channel_dtr_try_complete(struct __vxge_hw_channel *channel,
@@ -2433,21 +2290,9 @@ vxge_hw_channel_dtr_free(struct __vxge_hw_channel *channel, void *dtrh);
2433 2290
2434int 2291int
2435vxge_hw_channel_dtr_count(struct __vxge_hw_channel *channel); 2292vxge_hw_channel_dtr_count(struct __vxge_hw_channel *channel);
2436void
2437vxge_hw_vpath_tti_ci_set(struct __vxge_hw_device *hldev, u32 vp_id);
2438 2293
2439/* ========================== PRIVATE API ================================= */ 2294void vxge_hw_vpath_tti_ci_set(struct __vxge_hw_fifo *fifo);
2440 2295
2441enum vxge_hw_status 2296void vxge_hw_vpath_dynamic_rti_ci_set(struct __vxge_hw_ring *ring);
2442__vxge_hw_device_handle_link_up_ind(struct __vxge_hw_device *hldev);
2443
2444enum vxge_hw_status
2445__vxge_hw_device_handle_link_down_ind(struct __vxge_hw_device *hldev);
2446
2447enum vxge_hw_status
2448__vxge_hw_device_handle_error(
2449 struct __vxge_hw_device *hldev,
2450 u32 vp_id,
2451 enum vxge_hw_event type);
2452 2297
2453#endif 2298#endif