• Home
  • Raw
  • Download

Lines Matching full:tab

895 static void gfar_set_mask(u32 mask, struct filer_table *tab)  in gfar_set_mask()  argument
897 tab->fe[tab->index].ctrl = RQFCR_AND | RQFCR_PID_MASK | RQFCR_CMP_EXACT; in gfar_set_mask()
898 tab->fe[tab->index].prop = mask; in gfar_set_mask()
899 tab->index++; in gfar_set_mask()
903 static void gfar_set_parse_bits(u32 value, u32 mask, struct filer_table *tab) in gfar_set_parse_bits() argument
905 gfar_set_mask(mask, tab); in gfar_set_parse_bits()
906 tab->fe[tab->index].ctrl = RQFCR_CMP_EXACT | RQFCR_PID_PARSE | in gfar_set_parse_bits()
908 tab->fe[tab->index].prop = value; in gfar_set_parse_bits()
909 tab->index++; in gfar_set_parse_bits()
913 struct filer_table *tab) in gfar_set_general_attribute() argument
915 gfar_set_mask(mask, tab); in gfar_set_general_attribute()
916 tab->fe[tab->index].ctrl = RQFCR_CMP_EXACT | RQFCR_AND | flag; in gfar_set_general_attribute()
917 tab->fe[tab->index].prop = value; in gfar_set_general_attribute()
918 tab->index++; in gfar_set_general_attribute()
936 struct filer_table *tab) in gfar_set_attribute() argument
989 gfar_set_general_attribute(value, mask, flag, tab); in gfar_set_attribute()
995 struct filer_table *tab) in gfar_set_basic_ip() argument
999 RQFCR_PID_SIA, tab); in gfar_set_basic_ip()
1002 RQFCR_PID_DIA, tab); in gfar_set_basic_ip()
1005 RQFCR_PID_DPT, tab); in gfar_set_basic_ip()
1008 RQFCR_PID_SPT, tab); in gfar_set_basic_ip()
1009 gfar_set_attribute(value->tos, mask->tos, RQFCR_PID_TOS, tab); in gfar_set_basic_ip()
1015 struct filer_table *tab) in gfar_set_user_ip() argument
1019 RQFCR_PID_SIA, tab); in gfar_set_user_ip()
1022 RQFCR_PID_DIA, tab); in gfar_set_user_ip()
1023 gfar_set_attribute(value->tos, mask->tos, RQFCR_PID_TOS, tab); in gfar_set_user_ip()
1024 gfar_set_attribute(value->proto, mask->proto, RQFCR_PID_L4P, tab); in gfar_set_user_ip()
1027 RQFCR_PID_ARB, tab); in gfar_set_user_ip()
1033 struct filer_table *tab) in gfar_set_ether() argument
1055 upper_temp_mask, RQFCR_PID_SAH, tab); in gfar_set_ether()
1060 lower_temp_mask, RQFCR_PID_SAL, tab); in gfar_set_ether()
1067 gfar_set_parse_bits(RQFPR_EBC, RQFPR_EBC, tab); in gfar_set_ether()
1085 upper_temp_mask, RQFCR_PID_DAH, tab); in gfar_set_ether()
1090 lower_temp_mask, RQFCR_PID_DAL, tab); in gfar_set_ether()
1096 RQFCR_PID_ETY, tab); in gfar_set_ether()
1133 struct filer_table *tab) in gfar_convert_to_filer() argument
1139 u32 old_index = tab->index; in gfar_convert_to_filer()
1170 RQFPR_IPV4 | RQFPR_TCP | vlan_mask, tab); in gfar_convert_to_filer()
1172 &rule->m_u.tcp_ip4_spec, tab); in gfar_convert_to_filer()
1176 RQFPR_IPV4 | RQFPR_UDP | vlan_mask, tab); in gfar_convert_to_filer()
1178 &rule->m_u.udp_ip4_spec, tab); in gfar_convert_to_filer()
1182 tab); in gfar_convert_to_filer()
1183 gfar_set_attribute(132, 0, RQFCR_PID_L4P, tab); in gfar_convert_to_filer()
1186 tab); in gfar_convert_to_filer()
1190 tab); in gfar_convert_to_filer()
1193 tab); in gfar_convert_to_filer()
1197 gfar_set_parse_bits(vlan, vlan_mask, tab); in gfar_convert_to_filer()
1199 (struct ethhdr *) &rule->m_u, tab); in gfar_convert_to_filer()
1207 gfar_set_attribute(id, id_mask, RQFCR_PID_VID, tab); in gfar_convert_to_filer()
1208 gfar_set_attribute(prio, prio_mask, RQFCR_PID_PRI, tab); in gfar_convert_to_filer()
1212 if (tab->index == old_index) { in gfar_convert_to_filer()
1213 gfar_set_mask(0xFFFFFFFF, tab); in gfar_convert_to_filer()
1214 tab->fe[tab->index].ctrl = 0x20; in gfar_convert_to_filer()
1215 tab->fe[tab->index].prop = 0x0; in gfar_convert_to_filer()
1216 tab->index++; in gfar_convert_to_filer()
1220 tab->fe[tab->index - 1].ctrl &= (~RQFCR_AND); in gfar_convert_to_filer()
1224 tab->fe[tab->index - 1].ctrl |= RQFCR_RJE; in gfar_convert_to_filer()
1226 tab->fe[tab->index - 1].ctrl |= (rule->ring_cookie << 10); in gfar_convert_to_filer()
1229 if (tab->index > (old_index + 2)) { in gfar_convert_to_filer()
1230 tab->fe[old_index + 1].ctrl |= RQFCR_CLE; in gfar_convert_to_filer()
1231 tab->fe[tab->index - 1].ctrl |= RQFCR_CLE; in gfar_convert_to_filer()
1237 if (tab->index > MAX_FILER_CACHE_IDX - 1) in gfar_convert_to_filer()
1245 struct filer_table *tab) in gfar_write_filer_table() argument
1248 if (tab->index > MAX_FILER_IDX - 1) in gfar_write_filer_table()
1252 for (; i < MAX_FILER_IDX && (tab->fe[i].ctrl | tab->fe[i].prop); i++) in gfar_write_filer_table()
1253 gfar_write_filer(priv, i, tab->fe[i].ctrl, tab->fe[i].prop); in gfar_write_filer_table()
1288 struct filer_table *tab; in gfar_process_filer_changes() local
1292 tab = kzalloc(sizeof(*tab), GFP_KERNEL); in gfar_process_filer_changes()
1293 if (tab == NULL) in gfar_process_filer_changes()
1300 ret = gfar_convert_to_filer(&j->fs, tab); in gfar_process_filer_changes()
1314 ret = gfar_write_filer_table(priv, tab); in gfar_process_filer_changes()
1321 kfree(tab); in gfar_process_filer_changes()