Lines Matching refs:val

133 	int (*activation_hdlr)(struct sock *sk, u64 val, bool rx);
254 static void dccp_feat_printval(u8 feat_num, dccp_feat_val const *val)
258 if (val == NULL || (type == FEAT_SP && val->sp.vec == NULL))
261 for (i = 0; i < val->sp.len; i++)
262 dccp_pr_debug_cat("%s%u", i ? " " : "", val->sp.vec[i]);
264 dccp_pr_debug_cat("%llu", (unsigned long long)val->nn);
283 dccp_feat_printval(entry->feat_num, &entry->val);
288 #define dccp_feat_print_opt(opt, feat, val, len, mandatory) do { \
290 dccp_feat_printvals(feat, val, len); \
301 #define dccp_feat_print_opt(opt, feat, val, len, mandatory)
309 u64 val;
317 val = dccp_feat_table[idx].default_value;
326 val = dccp_feat_table[idx].default_value;
328 val = fval->sp.vec[0];
331 val = fval->nn;
339 fval ? "" : "default ", (unsigned long long)val);
341 return dccp_feat_table[idx].activation_hdlr(sk, val, rx);
367 static int dccp_feat_clone_sp_val(dccp_feat_val *fval, u8 const *val, u8 len)
371 fval->sp.vec = kmemdup(val, len, gfp_any());
380 static void dccp_feat_val_destructor(u8 feat_num, dccp_feat_val *val)
382 if (unlikely(val == NULL))
385 kfree(val->sp.vec);
386 memset(val, 0, sizeof(*val));
402 if (type == FEAT_SP && dccp_feat_clone_sp_val(&new->val,
403 original->val.sp.vec,
404 original->val.sp.len)) {
414 dccp_feat_val_destructor(entry->feat_num, &entry->val);
457 dccp_feat_val_destructor(entry->feat_num, &entry->val);
494 new->val = *fval;
522 new->val.nn = 0; /* zeroes the whole structure */
524 new->val = *fval;
586 static u8 dccp_feat_is_valid_nn_val(u8 feat_num, u64 val)
590 return val <= DCCPF_ACK_RATIO_MAX;
592 return val >= DCCPF_SEQ_WMIN && val <= DCCPF_SEQ_WMAX;
598 static u8 dccp_feat_is_valid_sp_val(u8 feat_num, u8 val)
602 return val == DCCPC_CCID2 || val == DCCPC_CCID3;
610 return val < 2;
612 return val < 16;
652 len = pos->val.sp.len;
653 ptr = pos->val.sp.vec;
658 dccp_encode_value_var(pos->val.nn, ptr, len);
783 return entry->val.nn;
824 (unsigned long long)entry->val.nn,
855 .val = 1
864 .val = 1
877 .val = 0
883 .val = 1
889 .val = 1
905 .val = 0
911 .val = 1
917 .val = 0
923 .val = 1
956 &table[i].val, 1);
960 table[i].val);
988 if (entry->feat_num == DCCPF_CCID && entry->val.sp.len == 1)
989 ccids[entry->is_local] = entry->val.sp.vec[0];
1012 ccid = entry->val.sp.vec[0];
1097 * @val: NN value or SP value/preference list
1098 * @len: length of @val in bytes
1102 u8 feat, u8 *val, u8 len, const bool server)
1112 dccp_feat_print_opt(opt, feat, val, len, is_mandatory);
1123 fval.nn = dccp_decode_value_var(val, len);
1145 if (dccp_feat_clone_sp_val(&fval, val, 1))
1150 if (dccp_feat_preflist_match(&defval, 1, val, len) > -1)
1169 if (dccp_feat_reconcile(&entry->val, val, len, server, true)) {
1184 if (!dccp_feat_reconcile(&entry->val, &defval, 1, server, true))
1208 * @val: NN value or SP value/preference list
1209 * @len: length of @val in bytes
1213 u8 feat, u8 *val, u8 len, const bool server)
1219 dccp_feat_print_opt(opt, feat, val, len, is_mandatory);
1248 if (len > sizeof(entry->val.nn))
1251 if (entry->val.nn == dccp_decode_value_var(val, len))
1259 * Parsing SP Confirms: the first element of @val is the preferred
1263 if (!dccp_feat_is_valid_sp_val(feat, *val))
1267 plist = val;
1270 plist = val + 1;
1275 if (dccp_feat_reconcile(&entry->val, plist, plen, server, 0) != *val) {
1276 DCCP_WARN("Confirm selected the wrong value %u\n", *val);
1279 entry->val.sp.vec[0] = *val;
1297 * @val: NN value
1298 * @len: length of @val in bytes
1310 u8 feat, u8 *val, u8 len)
1318 dccp_feat_print_opt(opt, feat, val, len, mandatory);
1339 fval.nn = dccp_decode_value_var(val, len);
1355 fval.nn = dccp_decode_value_var(val, len);
1362 if (fval.nn != entry->val.nn)
1393 * @val: value contents of @opt
1394 * @len: length of @val in bytes
1399 u8 mandatory, u8 opt, u8 feat, u8 *val, u8 len)
1417 val, len, server);
1421 val, len, server);
1430 val, len);
1453 u8 *val;
1481 if (ccid_get_builtin_ccids(&tx.val, &tx.len))
1483 if (ccid_get_builtin_ccids(&rx.val, &rx.len)) {
1484 kfree(tx.val);
1488 if (!dccp_feat_prefer(sysctl_dccp_tx_ccid, tx.val, tx.len) ||
1489 !dccp_feat_prefer(sysctl_dccp_rx_ccid, rx.val, rx.len))
1492 rc = __feat_register_sp(fn, DCCPF_CCID, true, false, tx.val, tx.len);
1496 rc = __feat_register_sp(fn, DCCPF_CCID, false, false, rx.val, rx.len);
1499 kfree(tx.val);
1500 kfree(rx.val);
1534 fvals[idx][cur->is_local] = &cur->val;