Lines Matching refs:fn
636 struct list_head *fn = dreq ? &dreq->dreq_featneg : &dp->dccps_featneg; in dccp_feat_insert_opts() local
642 list_for_each_entry_safe_reverse(pos, next, fn, node) { in dccp_feat_insert_opts()
699 static int __feat_register_nn(struct list_head *fn, u8 feat, in __feat_register_nn() argument
712 return dccp_feat_push_change(fn, feat, 1, mandatory, &fval); in __feat_register_nn()
724 static int __feat_register_sp(struct list_head *fn, u8 feat, u8 is_local, in __feat_register_sp() argument
740 if (dccp_feat_push_change(fn, feat, is_local, mandatory, &fval)) { in __feat_register_sp()
807 struct list_head *fn = &dccp_sk(sk)->dccps_featneg; in dccp_feat_signal_nn_change() local
821 entry = dccp_feat_list_lookup(fn, feat, 1); in dccp_feat_signal_nn_change()
830 return dccp_feat_push_change(fn, feat, 1, 0, &fval); in dccp_feat_signal_nn_change()
946 static int dccp_feat_propagate_ccid(struct list_head *fn, u8 id, bool is_local) in dccp_feat_propagate_ccid() argument
953 rc = __feat_register_sp(fn, table[i].dependent_feat, in dccp_feat_propagate_ccid()
958 rc = __feat_register_nn(fn, table[i].dependent_feat, in dccp_feat_propagate_ccid()
974 struct list_head *fn = &dp->dccps_featneg; in dccp_feat_finalise_settings() local
987 list_for_each_entry(entry, fn, node) in dccp_feat_finalise_settings()
991 if (ccids[i] > 0 && dccp_feat_propagate_ccid(fn, ccids[i], i)) in dccp_feat_finalise_settings()
993 dccp_feat_print_fnlist(fn); in dccp_feat_finalise_settings()
1006 struct list_head *fn = &dreq->dreq_featneg; in dccp_feat_server_ccid_dependencies() local
1011 entry = dccp_feat_list_lookup(fn, DCCPF_CCID, is_local); in dccp_feat_server_ccid_dependencies()
1018 if (dccp_feat_propagate_ccid(fn, ccid, is_local)) in dccp_feat_server_ccid_dependencies()
1107 static u8 dccp_feat_change_recv(struct list_head *fn, u8 is_mandatory, u8 opt, in dccp_feat_change_recv() argument
1133 return dccp_feat_push_confirm(fn, feat, local, &fval); in dccp_feat_change_recv()
1139 entry = dccp_feat_list_lookup(fn, feat, local); in dccp_feat_change_recv()
1169 return dccp_feat_push_confirm(fn, feat, local, &fval); in dccp_feat_change_recv()
1201 return dccp_push_empty_confirm(fn, feat, local); in dccp_feat_change_recv()
1218 static u8 dccp_feat_confirm_recv(struct list_head *fn, u8 is_mandatory, u8 opt, in dccp_feat_confirm_recv() argument
1223 struct dccp_feat_entry *entry = dccp_feat_list_lookup(fn, feat, local); in dccp_feat_confirm_recv()
1318 struct list_head *fn = &dccp_sk(sk)->dccps_featneg; in dccp_feat_handle_nn_established() local
1349 if (dccp_feat_push_confirm(fn, feat, local, &fval) || in dccp_feat_handle_nn_established()
1357 entry = dccp_feat_list_lookup(fn, feat, local); in dccp_feat_handle_nn_established()
1385 return dccp_push_empty_confirm(fn, feat, local); in dccp_feat_handle_nn_established()
1408 struct list_head *fn = dreq ? &dreq->dreq_featneg : &dp->dccps_featneg; in dccp_feat_parse_options() local
1422 return dccp_feat_change_recv(fn, mandatory, opt, feat, in dccp_feat_parse_options()
1426 return dccp_feat_confirm_recv(fn, mandatory, opt, feat, in dccp_feat_parse_options()
1455 struct list_head *fn = &dccp_sk(sk)->dccps_featneg; in dccp_feat_init() local
1464 rc = __feat_register_nn(fn, DCCPF_SEQUENCE_WINDOW, 0, in dccp_feat_init()
1472 rc = __feat_register_sp(fn, DCCPF_SHORT_SEQNOS, true, true, &off, 1); in dccp_feat_init()
1477 rc = __feat_register_sp(fn, DCCPF_ECN_INCAPABLE, true, true, &on, 1); in dccp_feat_init()
1498 rc = __feat_register_sp(fn, DCCPF_CCID, true, false, tx.val, tx.len); in dccp_feat_init()
1502 rc = __feat_register_sp(fn, DCCPF_CCID, false, false, rx.val, rx.len); in dccp_feat_init()