Lines Matching defs:fsp

3246  * @fsp: pointer to rx flow specification
3263 static int i40e_parse_rx_flow_user_data(struct ethtool_rx_flow_spec *fsp,
3272 if (!(fsp->flow_type & FLOW_EXT))
3275 value = be64_to_cpu(*((__be64 *)fsp->h_ext.data));
3276 mask = be64_to_cpu(*((__be64 *)fsp->m_ext.data));
3297 * @fsp: pointer to rx_flow specification
3303 static void i40e_fill_rx_flow_user_data(struct ethtool_rx_flow_spec *fsp,
3315 fsp->flow_type |= FLOW_EXT;
3317 *((__be64 *)fsp->h_ext.data) = cpu_to_be64(value);
3318 *((__be64 *)fsp->m_ext.data) = cpu_to_be64(mask);
3370 struct ethtool_rx_flow_spec *fsp =
3381 if (fsp->location <= rule->fd_id)
3385 if (!rule || fsp->location != rule->fd_id)
3388 fsp->flow_type = rule->flow_type;
3389 if (fsp->flow_type == IP_USER_FLOW) {
3390 fsp->h_u.usr_ip4_spec.ip_ver = ETH_RX_NFC_IP4;
3391 fsp->h_u.usr_ip4_spec.proto = 0;
3392 fsp->m_u.usr_ip4_spec.proto = 0;
3395 if (fsp->flow_type == IPV6_USER_FLOW ||
3396 fsp->flow_type == UDP_V6_FLOW ||
3397 fsp->flow_type == TCP_V6_FLOW ||
3398 fsp->flow_type == SCTP_V6_FLOW) {
3403 fsp->h_u.tcp_ip6_spec.psrc = rule->dst_port;
3404 fsp->h_u.tcp_ip6_spec.pdst = rule->src_port;
3405 memcpy(fsp->h_u.tcp_ip6_spec.ip6dst, rule->src_ip6,
3407 memcpy(fsp->h_u.tcp_ip6_spec.ip6src, rule->dst_ip6,
3414 fsp->h_u.tcp_ip4_spec.psrc = rule->dst_port;
3415 fsp->h_u.tcp_ip4_spec.pdst = rule->src_port;
3416 fsp->h_u.tcp_ip4_spec.ip4src = rule->dst_ip;
3417 fsp->h_u.tcp_ip4_spec.ip4dst = rule->src_ip;
3461 fsp->m_u.tcp_ip6_spec.ip6src[0] = htonl(0xFFFFFFFF);
3462 fsp->m_u.tcp_ip6_spec.ip6src[1] = htonl(0xFFFFFFFF);
3463 fsp->m_u.tcp_ip6_spec.ip6src[2] = htonl(0xFFFFFFFF);
3464 fsp->m_u.tcp_ip6_spec.ip6src[3] = htonl(0xFFFFFFFF);
3468 fsp->m_u.tcp_ip6_spec.ip6dst[0] = htonl(0xFFFFFFFF);
3469 fsp->m_u.tcp_ip6_spec.ip6dst[1] = htonl(0xFFFFFFFF);
3470 fsp->m_u.tcp_ip6_spec.ip6dst[2] = htonl(0xFFFFFFFF);
3471 fsp->m_u.tcp_ip6_spec.ip6dst[3] = htonl(0xFFFFFFFF);
3475 fsp->m_u.tcp_ip4_spec.ip4src = htonl(0xFFFFFFFF);
3478 fsp->m_u.tcp_ip4_spec.ip4dst = htonl(0xFFFFFFFF);
3481 fsp->m_u.tcp_ip4_spec.psrc = htons(0xFFFF);
3484 fsp->m_u.tcp_ip4_spec.pdst = htons(0xFFFF);
3487 fsp->ring_cookie = RX_CLS_FLOW_DISC;
3489 fsp->ring_cookie = rule->q_index;
3492 fsp->h_ext.vlan_etype = rule->vlan_etype;
3493 fsp->m_ext.vlan_etype = htons(0xFFFF);
3494 fsp->h_ext.vlan_tci = rule->vlan_tag;
3495 fsp->m_ext.vlan_tci = htons(0xFFFF);
3496 fsp->flow_type |= FLOW_EXT;
3509 fsp->ring_cookie |= ring_vf;
3519 i40e_fill_rx_flow_user_data(fsp, &userdef);
3888 struct ethtool_rx_flow_spec *fsp =
3900 ret = i40e_update_ethtool_fdir_entry(vsi, NULL, fsp->location, cmd);
4150 * @fsp: the flow specification
4155 static const char *i40e_flow_str(struct ethtool_rx_flow_spec *fsp)
4157 switch (fsp->flow_type & ~FLOW_EXT) {
4283 * @fsp: pointer to Rx flow specification
4306 struct ethtool_rx_flow_spec *fsp,
4325 switch (fsp->flow_type & ~FLOW_EXT) {
4377 switch (fsp->flow_type & ~FLOW_EXT) {
4383 tcp_ip4_spec = &fsp->m_u.tcp_ip4_spec;
4427 tcp_ip6_spec = &fsp->m_u.tcp_ip6_spec;
4470 usr_ip4_spec = &fsp->m_u.usr_ip4_spec;
4506 usr_ip6_spec = &fsp->m_u.usr_ip6_spec;
4544 if (fsp->flow_type & FLOW_EXT) {
4548 if (fsp->h_ext.vlan_etype != htons(ETH_P_8021Q) &&
4549 fsp->h_ext.vlan_etype != 0)
4551 if (fsp->m_ext.vlan_tci == htons(0xFFFF))
4652 i40e_flow_str(fsp));
4679 i40e_flow_str(fsp),
4812 struct ethtool_rx_flow_spec *fsp;
4836 fsp = (struct ethtool_rx_flow_spec *)&cmd->fs;
4839 if (i40e_parse_rx_flow_user_data(fsp, &userdef))
4843 if (fsp->flow_type & FLOW_MAC_EXT)
4846 ret = i40e_check_fdir_input_set(vsi, fsp, &userdef);
4850 if (fsp->location >= (pf->hw.func_caps.fd_filters_best_effort +
4858 if (fsp->ring_cookie == RX_CLS_FLOW_DISC) {
4861 u32 ring = ethtool_get_flow_spec_ring(fsp->ring_cookie);
4862 u8 vf = ethtool_get_flow_spec_ring_vf(fsp->ring_cookie);
4887 input->fd_id = fsp->location;
4893 input->dst_ip = fsp->h_u.tcp_ip4_spec.ip4src;
4894 input->src_ip = fsp->h_u.tcp_ip4_spec.ip4dst;
4895 input->flow_type = fsp->flow_type & ~FLOW_EXT;
4897 input->vlan_etype = fsp->h_ext.vlan_etype;
4898 if (!fsp->m_ext.vlan_etype && fsp->h_ext.vlan_tci)
4900 if (fsp->m_ext.vlan_tci && input->vlan_etype)
4901 input->vlan_tag = fsp->h_ext.vlan_tci;
4910 input->ipl4_proto = fsp->h_u.usr_ip6_spec.l4_proto;
4911 input->dst_port = fsp->h_u.tcp_ip6_spec.psrc;
4912 input->src_port = fsp->h_u.tcp_ip6_spec.pdst;
4913 memcpy(input->dst_ip6, fsp->h_u.ah_ip6_spec.ip6src,
4915 memcpy(input->src_ip6, fsp->h_u.ah_ip6_spec.ip6dst,
4922 input->ipl4_proto = fsp->h_u.usr_ip4_spec.proto;
4923 input->dst_port = fsp->h_u.tcp_ip4_spec.psrc;
4924 input->src_port = fsp->h_u.tcp_ip4_spec.pdst;
4925 input->dst_ip = fsp->h_u.tcp_ip4_spec.ip4src;
4926 input->src_ip = fsp->h_u.tcp_ip4_spec.ip4dst;
4944 i40e_update_ethtool_fdir_entry(vsi, input, fsp->location, NULL);