18 #include <sys/types.h> 21 #include <sys/ioctl.h> 33 if ((last == 0) && (first == 31))
36 value &= (1 << (first - last + 1)) - 1;
44 u32 dev_instance = va_arg (*args,
u32);
46 return format (s,
"mv-ppio-%d/%d", ppif->
ppio->pp2_id, ppif->
ppio->port_id);
49 #define foreach_ppio_statistics_entry \ 58 #define foreach_ppio_inq_statistics_entry \ 64 #define foreach_ppio_outq_statistics_entry \ 74 u32 dev_instance = va_arg (*args,
u32);
77 struct pp2_ppio_statistics stat;
81 pp2_ppio_get_statistics (ppif->
ppio, &stat, 0);
83 #define _(c) if (stat.c) \ 84 s2 = format (s2, "\n%U%-25U%16Ld", \ 85 format_white_space, indent + 2, \ 86 format_c_identifier, #c, stat.c); 90 s =
format (s,
"Interface statistics:%v", s2);
95 struct pp2_ppio_inq_statistics stat = { 0 };
96 pp2_ppio_inq_get_statistics (ppif->
ppio, 0, i, &stat, 0);
101 s =
format (s,
"\n%UInput queue %u statistics:%v",
107 struct pp2_ppio_outq_statistics stat = { 0 };
109 pp2_ppio_outq_get_statistics (ppif->
ppio, i, &stat, 0);
114 s =
format (s,
"\n%UOutput queue %u statistics:%v",
123 #define foreach_pp2_rx_desc_field \ 124 _(0x00, 6, 0, l3_offset) \ 125 _(0x00, 12, 8, ip_hdlen) \ 126 _(0x00, 14, 13, ec) \ 127 _(0x00, 15, 15, es) \ 128 _(0x00, 19, 16, pool_id) \ 129 _(0x00, 21, 21, hwf_sync) \ 130 _(0x00, 22, 22, l4_chk_ok) \ 131 _(0x00, 23, 23, ip_frg) \ 132 _(0x00, 24, 24, ipv4_hdr_err) \ 133 _(0x00, 27, 25, l4_info) \ 134 _(0x00, 30, 28, l3_info) \ 135 _(0x00, 31, 31, buf_header) \ 136 _(0x04, 5, 0, lookup_id) \ 137 _(0x04, 8, 6, cpu_code) \ 138 _(0x04, 9, 9, pppoe) \ 139 _(0x04, 11, 10, l3_cast_info) \ 140 _(0x04, 13, 12, l2_cast_info) \ 141 _(0x04, 15, 14, vlan_info) \ 142 _(0x04, 31, 16, byte_count) \ 143 _(0x08, 11, 0, gem_port_id) \ 144 _(0x08, 13, 12, color) \ 145 _(0x08, 14, 14, gop_sop_u) \ 146 _(0x08, 15, 15, key_hash_enable) \ 147 _(0x08, 31, 16, l4chk) \ 148 _(0x0c, 31, 0, timestamp) \ 149 _(0x10, 31, 0, buf_phys_ptr_lo) \ 150 _(0x14, 7, 0, buf_phys_ptr_hi) \ 151 _(0x14, 31, 8, key_hash) \ 152 _(0x18, 31, 0, buf_virt_ptr_lo) \ 153 _(0x1c, 7, 0, buf_virt_ptr_hi) \ 154 _(0x1c, 14, 8, buf_qset_no) \ 155 _(0x1c, 15, 15, buf_type) \ 156 _(0x1c, 21, 16, mod_dscp) \ 157 _(0x1c, 24, 22, mod_pri) \ 158 _(0x1c, 25, 25, mdscp) \ 159 _(0x1c, 26, 26, mpri) \ 160 _(0x1c, 27, 27, mgpid) \ 161 _(0x1c, 31, 29, port_num) 172 struct pp2_ppio_desc *d = &t->
desc;
175 s =
format (s,
"pp2: %v (%d) next-node %U",
180 #define _(a, b, c, n) \ 181 r32 = mrvl_get_u32_bits (d, a, b, c); \ 183 s = format (s, "%s %u (0x%x)", #n, r32, r32); \ 185 s = format (s, "%s %u", #n,r32); \ 186 if (format_get_indent (s) > 72) \ 187 s = format (s, "\n%U", format_white_space, indent + 2); \ 188 else s = format (s, " ");
#define vec_foreach_index(var, v)
Iterate over vector indices.
vnet_main_t * vnet_get_main(void)
static vnet_hw_interface_t * vnet_get_hw_interface(vnet_main_t *vnm, u32 hw_if_index)
mrvl_pp2_main_t mrvl_pp2_main
static heap_elt_t * last(heap_header_t *h)
#define vec_reset_length(v)
Reset vector length to zero NULL-pointer tolerant.
format_function_t format_vlib_next_node_name
static heap_elt_t * first(heap_header_t *h)
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
#define vec_free(V)
Free vector's memory (no header).
template key/value backing page structure
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
struct clib_bihash_value offset
template key/value backing page structure
mrvl_pp2_if_t * interfaces