Lines Matching refs:fs

84 				     struct ch_filter_specification *fs)  in cxgb4_process_flow_match()  argument
115 fs->type = 1; in cxgb4_process_flow_match()
117 fs->val.ethtype = ethtype_key; in cxgb4_process_flow_match()
118 fs->mask.ethtype = ethtype_mask; in cxgb4_process_flow_match()
119 fs->val.proto = key->ip_proto; in cxgb4_process_flow_match()
120 fs->mask.proto = mask->ip_proto; in cxgb4_process_flow_match()
132 fs->type = 0; in cxgb4_process_flow_match()
133 memcpy(&fs->val.lip[0], &key->dst, sizeof(key->dst)); in cxgb4_process_flow_match()
134 memcpy(&fs->val.fip[0], &key->src, sizeof(key->src)); in cxgb4_process_flow_match()
135 memcpy(&fs->mask.lip[0], &mask->dst, sizeof(mask->dst)); in cxgb4_process_flow_match()
136 memcpy(&fs->mask.fip[0], &mask->src, sizeof(mask->src)); in cxgb4_process_flow_match()
139 memcpy(&fs->nat_lip[0], &key->dst, sizeof(key->dst)); in cxgb4_process_flow_match()
140 memcpy(&fs->nat_fip[0], &key->src, sizeof(key->src)); in cxgb4_process_flow_match()
154 fs->type = 1; in cxgb4_process_flow_match()
155 memcpy(&fs->val.lip[0], key->dst.s6_addr, sizeof(key->dst)); in cxgb4_process_flow_match()
156 memcpy(&fs->val.fip[0], key->src.s6_addr, sizeof(key->src)); in cxgb4_process_flow_match()
157 memcpy(&fs->mask.lip[0], mask->dst.s6_addr, sizeof(mask->dst)); in cxgb4_process_flow_match()
158 memcpy(&fs->mask.fip[0], mask->src.s6_addr, sizeof(mask->src)); in cxgb4_process_flow_match()
161 memcpy(&fs->nat_lip[0], key->dst.s6_addr, sizeof(key->dst)); in cxgb4_process_flow_match()
162 memcpy(&fs->nat_fip[0], key->src.s6_addr, sizeof(key->src)); in cxgb4_process_flow_match()
174 fs->val.lport = cpu_to_be16(key->dst); in cxgb4_process_flow_match()
175 fs->mask.lport = cpu_to_be16(mask->dst); in cxgb4_process_flow_match()
176 fs->val.fport = cpu_to_be16(key->src); in cxgb4_process_flow_match()
177 fs->mask.fport = cpu_to_be16(mask->src); in cxgb4_process_flow_match()
180 fs->nat_lport = cpu_to_be16(key->dst); in cxgb4_process_flow_match()
181 fs->nat_fport = cpu_to_be16(key->src); in cxgb4_process_flow_match()
193 fs->val.tos = key->tos; in cxgb4_process_flow_match()
194 fs->mask.tos = mask->tos; in cxgb4_process_flow_match()
206 fs->val.vni = be32_to_cpu(key->keyid); in cxgb4_process_flow_match()
207 fs->mask.vni = be32_to_cpu(mask->keyid); in cxgb4_process_flow_match()
208 if (fs->mask.vni) { in cxgb4_process_flow_match()
209 fs->val.encap_vld = 1; in cxgb4_process_flow_match()
210 fs->mask.encap_vld = 1; in cxgb4_process_flow_match()
228 fs->val.ivlan = vlan_tci; in cxgb4_process_flow_match()
229 fs->mask.ivlan = vlan_tci_mask; in cxgb4_process_flow_match()
240 if (fs->val.ethtype == ETH_P_8021Q) { in cxgb4_process_flow_match()
241 fs->val.ivlan_vld = 1; in cxgb4_process_flow_match()
242 fs->mask.ivlan_vld = 1; in cxgb4_process_flow_match()
243 fs->val.ethtype = 0; in cxgb4_process_flow_match()
244 fs->mask.ethtype = 0; in cxgb4_process_flow_match()
251 fs->val.iport = netdev2pinfo(dev)->port_id; in cxgb4_process_flow_match()
252 fs->mask.iport = ~0; in cxgb4_process_flow_match()
309 static void offload_pedit(struct ch_filter_specification *fs, u32 val, u32 mask, in offload_pedit() argument
324 memcpy((u8 *)fs + offset, &set_val, size); in offload_pedit()
327 static void process_pedit_field(struct ch_filter_specification *fs, u32 val, in process_pedit_field() argument
334 fs->newdmac = 1; in process_pedit_field()
335 offload_pedit(fs, val, mask, ETH_DMAC_31_0); in process_pedit_field()
339 offload_pedit(fs, val, mask, ETH_DMAC_47_32); in process_pedit_field()
341 offload_pedit(fs, val >> 16, mask >> 16, in process_pedit_field()
345 fs->newsmac = 1; in process_pedit_field()
346 offload_pedit(fs, val, mask, ETH_SMAC_47_16); in process_pedit_field()
352 offload_pedit(fs, val, mask, IP4_SRC); in process_pedit_field()
355 offload_pedit(fs, val, mask, IP4_DST); in process_pedit_field()
357 fs->nat_mode = NAT_MODE_ALL; in process_pedit_field()
362 offload_pedit(fs, val, mask, IP6_SRC_31_0); in process_pedit_field()
365 offload_pedit(fs, val, mask, IP6_SRC_63_32); in process_pedit_field()
368 offload_pedit(fs, val, mask, IP6_SRC_95_64); in process_pedit_field()
371 offload_pedit(fs, val, mask, IP6_SRC_127_96); in process_pedit_field()
374 offload_pedit(fs, val, mask, IP6_DST_31_0); in process_pedit_field()
377 offload_pedit(fs, val, mask, IP6_DST_63_32); in process_pedit_field()
380 offload_pedit(fs, val, mask, IP6_DST_95_64); in process_pedit_field()
383 offload_pedit(fs, val, mask, IP6_DST_127_96); in process_pedit_field()
385 fs->nat_mode = NAT_MODE_ALL; in process_pedit_field()
391 offload_pedit(fs, cpu_to_be32(val) >> 16, in process_pedit_field()
395 offload_pedit(fs, cpu_to_be32(val), in process_pedit_field()
398 fs->nat_mode = NAT_MODE_ALL; in process_pedit_field()
404 offload_pedit(fs, cpu_to_be32(val) >> 16, in process_pedit_field()
408 offload_pedit(fs, cpu_to_be32(val), in process_pedit_field()
411 fs->nat_mode = NAT_MODE_ALL; in process_pedit_field()
417 struct ch_filter_specification *fs) in cxgb4_process_flow_actions() argument
424 fs->action = FILTER_PASS; in cxgb4_process_flow_actions()
426 fs->action = FILTER_DROP; in cxgb4_process_flow_actions()
431 fs->action = FILTER_SWITCH; in cxgb4_process_flow_actions()
432 fs->eport = pi->port_id; in cxgb4_process_flow_actions()
441 fs->newvlan |= VLAN_REMOVE; in cxgb4_process_flow_actions()
444 fs->newvlan |= VLAN_INSERT; in cxgb4_process_flow_actions()
445 fs->vlan = vlan_tci; in cxgb4_process_flow_actions()
448 fs->newvlan |= VLAN_REWRITE; in cxgb4_process_flow_actions()
449 fs->vlan = vlan_tci; in cxgb4_process_flow_actions()
466 process_pedit_field(fs, val, mask, offset, in cxgb4_process_flow_actions()
671 struct ch_filter_specification *fs; in cxgb4_tc_flower_replace() local
688 fs = &ch_flower->fs; in cxgb4_tc_flower_replace()
689 fs->hitcnts = 1; in cxgb4_tc_flower_replace()
690 cxgb4_process_flow_match(dev, cls, fs); in cxgb4_tc_flower_replace()
691 cxgb4_process_flow_actions(dev, cls, fs); in cxgb4_tc_flower_replace()
693 fs->hash = is_filter_exact_match(adap, fs); in cxgb4_tc_flower_replace()
694 if (fs->hash) { in cxgb4_tc_flower_replace()
697 fidx = cxgb4_get_free_ftid(dev, fs->type ? PF_INET6 : PF_INET); in cxgb4_tc_flower_replace()
706 ret = __cxgb4_set_filter(dev, fidx, fs, &ctx); in cxgb4_tc_flower_replace()
738 cxgb4_del_filter(dev, ch_flower->filter_id, &ch_flower->fs); in cxgb4_tc_flower_replace()
756 ret = cxgb4_del_filter(dev, ch_flower->filter_id, &ch_flower->fs); in cxgb4_tc_flower_destroy()
792 flower_entry->fs.hash); in ch_flower_stats_handler()
837 ch_flower->fs.hash); in cxgb4_tc_flower_stats()