MCPcopy Create free account
hub / github.com/ElementsProject/lightning / set_node_bias

Function set_node_bias

plugins/askrene/layer.c:352–395  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

350}
351
352static const struct node_bias *set_node_bias(struct layer *layer,
353 const struct node_id *node,
354 const char *description TAKES,
355 s8 bias_factor,
356 bool relative,
357 bool dir_out,
358 u64 timestamp)
359{
360 struct node_bias *bias;
361
362 bias = node_bias_hash_get(layer->node_biases, node);
363 if (!bias) {
364 bias = tal(layer, struct node_bias);
365 bias->node = *node;
366 node_bias_hash_add(layer->node_biases, bias);
367 bias->in_bias = 0;
368 bias->out_bias = 0;
369 } else {
370 tal_free(bias->description);
371 }
372 bias->description = tal_strdup_or_null(bias, description);
373 bias->timestamp = timestamp;
374
375 if (dir_out) {
376 int bias_new =
377 relative ? bias->out_bias + bias_factor : bias_factor;
378 bias_new = MIN(100, bias_new);
379 bias_new = MAX(-100, bias_new);
380 bias->out_bias = bias_new;
381 } else {
382 int bias_new =
383 relative ? bias->in_bias + bias_factor : bias_factor;
384 bias_new = MIN(100, bias_new);
385 bias_new = MAX(-100, bias_new);
386 bias->in_bias = bias_new;
387 }
388
389 /* Don't bother keeping around zero biases */
390 if (bias->in_bias == 0 && bias->out_bias == 0) {
391 node_bias_hash_del(layer->node_biases, bias);
392 bias = tal_free(bias);
393 }
394 return bias;
395}
396
397static void add_disabled_node(struct layer *layer, const struct node_id *node)
398{

Callers 2

load_node_biasFunction · 0.85
layer_set_node_biasFunction · 0.85

Calls 2

tal_freeFunction · 0.85
tal_strdup_or_nullFunction · 0.85

Tested by

no test coverage detected