• Home
  • Raw
  • Download

Lines Matching refs:feat

216 static const char *dccp_feat_fname(const u8 feat)  in dccp_feat_fname()  argument
230 if (feat > DCCPF_DATA_CHECKSUM && feat < DCCPF_MIN_CCID_SPECIFIC) in dccp_feat_fname()
233 if (feat == DCCPF_SEND_LEV_RATE) in dccp_feat_fname()
235 if (feat >= DCCPF_MIN_CCID_SPECIFIC) in dccp_feat_fname()
238 return feature_names[feat]; in dccp_feat_fname()
291 #define dccp_feat_print_opt(opt, feat, val, len, mandatory) do { \ argument
292 dccp_pr_debug("%s(%s, ", dccp_feat_oname(opt), dccp_feat_fname(feat));\
293 dccp_feat_printvals(feat, val, len); \
304 #define dccp_feat_print_opt(opt, feat, val, len, mandatory) argument
454 dccp_feat_entry_new(struct list_head *head, u8 feat, bool local) in dccp_feat_entry_new() argument
459 if (entry->feat_num == feat && entry->is_local == local) { in dccp_feat_entry_new()
462 } else if (entry->feat_num > feat) { in dccp_feat_entry_new()
469 entry->feat_num = feat; in dccp_feat_entry_new()
484 static int dccp_feat_push_change(struct list_head *fn_list, u8 feat, u8 local, in dccp_feat_push_change() argument
487 struct dccp_feat_entry *new = dccp_feat_entry_new(fn_list, feat, local); in dccp_feat_push_change()
492 new->feat_num = feat; in dccp_feat_push_change()
512 static int dccp_feat_push_confirm(struct list_head *fn_list, u8 feat, u8 local, in dccp_feat_push_confirm() argument
515 struct dccp_feat_entry *new = dccp_feat_entry_new(fn_list, feat, local); in dccp_feat_push_confirm()
520 new->feat_num = feat; in dccp_feat_push_confirm()
533 static int dccp_push_empty_confirm(struct list_head *fn_list, u8 feat, u8 local) in dccp_push_empty_confirm() argument
535 return dccp_feat_push_confirm(fn_list, feat, local, NULL); in dccp_push_empty_confirm()
700 static int __feat_register_nn(struct list_head *fn, u8 feat, in __feat_register_nn() argument
705 if (dccp_feat_type(feat) != FEAT_NN || in __feat_register_nn()
706 !dccp_feat_is_valid_nn_val(feat, nn_val)) in __feat_register_nn()
710 if (nn_val - (u64)dccp_feat_default_value(feat) == 0) in __feat_register_nn()
713 return dccp_feat_push_change(fn, feat, 1, mandatory, &fval); in __feat_register_nn()
725 static int __feat_register_sp(struct list_head *fn, u8 feat, u8 is_local, in __feat_register_sp() argument
730 if (dccp_feat_type(feat) != FEAT_SP || in __feat_register_sp()
731 !dccp_feat_sp_list_ok(feat, sp_val, sp_len)) in __feat_register_sp()
735 if (feat == DCCPF_CCID && !ccid_support_check(sp_val, sp_len)) in __feat_register_sp()
741 return dccp_feat_push_change(fn, feat, is_local, mandatory, &fval); in __feat_register_sp()
752 int dccp_feat_register_sp(struct sock *sk, u8 feat, u8 is_local, in dccp_feat_register_sp() argument
757 if (dccp_feat_type(feat) != FEAT_SP) in dccp_feat_register_sp()
759 return __feat_register_sp(&dccp_sk(sk)->dccps_featneg, feat, is_local, in dccp_feat_register_sp()
771 u64 dccp_feat_nn_get(struct sock *sk, u8 feat) in dccp_feat_nn_get() argument
773 if (dccp_feat_type(feat) == FEAT_NN) { in dccp_feat_nn_get()
777 entry = dccp_feat_list_lookup(&dp->dccps_featneg, feat, 1); in dccp_feat_nn_get()
781 switch (feat) { in dccp_feat_nn_get()
788 DCCP_BUG("attempt to look up unsupported feature %u", feat); in dccp_feat_nn_get()
801 int dccp_feat_signal_nn_change(struct sock *sk, u8 feat, u64 nn_val) in dccp_feat_signal_nn_change() argument
810 if (dccp_feat_type(feat) != FEAT_NN || in dccp_feat_signal_nn_change()
811 !dccp_feat_is_valid_nn_val(feat, nn_val)) in dccp_feat_signal_nn_change()
814 if (nn_val == dccp_feat_nn_get(sk, feat)) in dccp_feat_signal_nn_change()
817 entry = dccp_feat_list_lookup(fn, feat, 1); in dccp_feat_signal_nn_change()
826 return dccp_feat_push_change(fn, feat, 1, 0, &fval); in dccp_feat_signal_nn_change()
1098 u8 feat, u8 *val, u8 len, const bool server) in dccp_feat_change_recv() argument
1100 u8 defval, type = dccp_feat_type(feat); in dccp_feat_change_recv()
1108 dccp_feat_print_opt(opt, feat, val, len, is_mandatory); in dccp_feat_change_recv()
1120 if (!dccp_feat_is_valid_nn_val(feat, fval.nn)) in dccp_feat_change_recv()
1123 return dccp_feat_push_confirm(fn, feat, local, &fval); in dccp_feat_change_recv()
1129 entry = dccp_feat_list_lookup(fn, feat, local); in dccp_feat_change_recv()
1145 defval = dccp_feat_default_value(feat); in dccp_feat_change_recv()
1148 } else if (!dccp_feat_is_valid_sp_val(feat, fval.sp.vec[0])) { in dccp_feat_change_recv()
1154 if (feat == DCCPF_CCID && !ccid_support_check(fval.sp.vec, 1)) { in dccp_feat_change_recv()
1159 return dccp_feat_push_confirm(fn, feat, local, &fval); in dccp_feat_change_recv()
1179 defval = dccp_feat_default_value(feat); in dccp_feat_change_recv()
1191 return dccp_push_empty_confirm(fn, feat, local); in dccp_feat_change_recv()
1209 u8 feat, u8 *val, u8 len, const bool server) in dccp_feat_confirm_recv() argument
1211 u8 *plist, plen, type = dccp_feat_type(feat); in dccp_feat_confirm_recv()
1213 struct dccp_feat_entry *entry = dccp_feat_list_lookup(fn, feat, local); in dccp_feat_confirm_recv()
1215 dccp_feat_print_opt(opt, feat, val, len, is_mandatory); in dccp_feat_confirm_recv()
1230 if (dccp_feat_must_be_understood(feat)) /* 6.6.7 */ in dccp_feat_confirm_recv()
1259 if (!dccp_feat_is_valid_sp_val(feat, *val)) in dccp_feat_confirm_recv()
1306 u8 feat, u8 *val, u8 len) in dccp_feat_handle_nn_established() argument
1311 u8 type = dccp_feat_type(feat); in dccp_feat_handle_nn_established()
1314 dccp_feat_print_opt(opt, feat, val, len, mandatory); in dccp_feat_handle_nn_established()
1336 if (!dccp_feat_is_valid_nn_val(feat, fval.nn)) in dccp_feat_handle_nn_established()
1339 if (dccp_feat_push_confirm(fn, feat, local, &fval) || in dccp_feat_handle_nn_established()
1340 dccp_feat_activate(sk, feat, local, &fval)) in dccp_feat_handle_nn_established()
1347 entry = dccp_feat_list_lookup(fn, feat, local); in dccp_feat_handle_nn_established()
1362 dccp_feat_activate(sk, feat, local, &fval); in dccp_feat_handle_nn_established()
1375 return dccp_push_empty_confirm(fn, feat, local); in dccp_feat_handle_nn_established()
1395 u8 mandatory, u8 opt, u8 feat, u8 *val, u8 len) in dccp_feat_parse_options() argument
1411 return dccp_feat_change_recv(fn, mandatory, opt, feat, in dccp_feat_parse_options()
1415 return dccp_feat_confirm_recv(fn, mandatory, opt, feat, in dccp_feat_parse_options()
1424 return dccp_feat_handle_nn_established(sk, mandatory, opt, feat, in dccp_feat_parse_options()