diff --git a/plugins/askrene/Makefile b/plugins/askrene/Makefile index 9e210f085..3c3f5c4b7 100644 --- a/plugins/askrene/Makefile +++ b/plugins/askrene/Makefile @@ -1,32 +1,22 @@ -PLUGIN_ASKRENE_SRC := \ +PLUGIN_ASKRENE_PARENT_SRC := \ plugins/askrene/askrene.c \ plugins/askrene/datastore_wire.c \ plugins/askrene/layer.c \ plugins/askrene/reserve.c \ - plugins/askrene/mcf.c \ - plugins/askrene/dijkstra.c \ - plugins/askrene/flow.c \ - plugins/askrene/refine.c \ - plugins/askrene/explain_failure.c \ - plugins/askrene/graph.c \ - plugins/askrene/priorityqueue.c \ - plugins/askrene/algorithm.c \ + +PLUGIN_ASKRENE_CHILD_SRC := \ + plugins/askrene/child/mcf.c \ + plugins/askrene/child/dijkstra.c \ + plugins/askrene/child/flow.c \ + plugins/askrene/child/refine.c \ + plugins/askrene/child/explain_failure.c \ + plugins/askrene/child/graph.c \ + plugins/askrene/child/priorityqueue.c \ + plugins/askrene/child/algorithm.c \ plugins/askrene/child/child_log.c \ -PLUGIN_ASKRENE_HEADER := \ - plugins/askrene/askrene.h \ - plugins/askrene/datastore_wire.h \ - plugins/askrene/layer.h \ - plugins/askrene/reserve.h \ - plugins/askrene/mcf.h \ - plugins/askrene/dijkstra.h \ - plugins/askrene/flow.h \ - plugins/askrene/refine.h \ - plugins/askrene/explain_failure.h \ - plugins/askrene/graph.h \ - plugins/askrene/priorityqueue.h \ - plugins/askrene/algorithm.h \ - plugins/askrene/child/child_log.h \ +PLUGIN_ASKRENE_SRC := $(PLUGIN_ASKRENE_PARENT_SRC) $(PLUGIN_ASKRENE_CHILD_SRC) +PLUGIN_ASKRENE_HEADER := $(PLUGIN_ASKRENE_SRC:.c=.h) PLUGIN_ASKRENE_OBJS := $(PLUGIN_ASKRENE_SRC:.c=.o) diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index de38b1450..ff94b21ad 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -26,9 +26,9 @@ #include #include #include -#include +#include +#include #include -#include #include #include #include diff --git a/plugins/askrene/algorithm.c b/plugins/askrene/child/algorithm.c similarity index 99% rename from plugins/askrene/algorithm.c rename to plugins/askrene/child/algorithm.c index d253325a8..4da79e0cb 100644 --- a/plugins/askrene/algorithm.c +++ b/plugins/askrene/child/algorithm.c @@ -1,8 +1,8 @@ #include "config.h" #include #include -#include -#include +#include +#include static const s64 INFINITE = INT64_MAX; diff --git a/plugins/askrene/algorithm.h b/plugins/askrene/child/algorithm.h similarity index 96% rename from plugins/askrene/algorithm.h rename to plugins/askrene/child/algorithm.h index 40010eb5c..67bbff93c 100644 --- a/plugins/askrene/algorithm.h +++ b/plugins/askrene/child/algorithm.h @@ -1,11 +1,11 @@ -#ifndef LIGHTNING_PLUGINS_ASKRENE_ALGORITHM_H -#define LIGHTNING_PLUGINS_ASKRENE_ALGORITHM_H +#ifndef LIGHTNING_PLUGINS_ASKRENE_CHILD_ALGORITHM_H +#define LIGHTNING_PLUGINS_ASKRENE_CHILD_ALGORITHM_H /* Implementation of network algorithms: shortests path, minimum cost flow, etc. */ #include "config.h" -#include +#include /* Search any path from source to destination using Breadth First Search. * @@ -176,4 +176,4 @@ bool mcf_refinement(const tal_t *ctx, const s64 *cost, s64 *potential); -#endif /* LIGHTNING_PLUGINS_ASKRENE_ALGORITHM_H */ +#endif /* LIGHTNING_PLUGINS_ASKRENE_CHILD_ALGORITHM_H */ diff --git a/plugins/askrene/dijkstra.c b/plugins/askrene/child/dijkstra.c similarity index 99% rename from plugins/askrene/dijkstra.c rename to plugins/askrene/child/dijkstra.c index b3f9d39de..4e4ca61b5 100644 --- a/plugins/askrene/dijkstra.c +++ b/plugins/askrene/child/dijkstra.c @@ -1,6 +1,6 @@ #define NDEBUG 1 #include "config.h" -#include +#include /* In the heap we keep node idx, but in this structure we keep the distance * value associated to every node, and their position in the heap as a pointer diff --git a/plugins/askrene/dijkstra.h b/plugins/askrene/child/dijkstra.h similarity index 85% rename from plugins/askrene/dijkstra.h rename to plugins/askrene/child/dijkstra.h index f8ff62a8a..600476269 100644 --- a/plugins/askrene/dijkstra.h +++ b/plugins/askrene/child/dijkstra.h @@ -1,5 +1,5 @@ -#ifndef LIGHTNING_PLUGINS_ASKRENE_DIJKSTRA_H -#define LIGHTNING_PLUGINS_ASKRENE_DIJKSTRA_H +#ifndef LIGHTNING_PLUGINS_ASKRENE_CHILD_DIJKSTRA_H +#define LIGHTNING_PLUGINS_ASKRENE_CHILD_DIJKSTRA_H #include "config.h" #include #include @@ -27,4 +27,4 @@ size_t dijkstra_size(const struct dijkstra *dijkstra); /* Maximum number of elements the heap can host */ size_t dijkstra_maxsize(const struct dijkstra *dijkstra); -#endif /* LIGHTNING_PLUGINS_ASKRENE_DIJKSTRA_H */ +#endif /* LIGHTNING_PLUGINS_ASKRENE_CHILD_DIJKSTRA_H */ diff --git a/plugins/askrene/explain_failure.c b/plugins/askrene/child/explain_failure.c similarity index 99% rename from plugins/askrene/explain_failure.c rename to plugins/askrene/child/explain_failure.c index be1f137cf..4502a32be 100644 --- a/plugins/askrene/explain_failure.c +++ b/plugins/askrene/child/explain_failure.c @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include diff --git a/plugins/askrene/explain_failure.h b/plugins/askrene/child/explain_failure.h similarity index 65% rename from plugins/askrene/explain_failure.h rename to plugins/askrene/child/explain_failure.h index ed470f829..2914b9eed 100644 --- a/plugins/askrene/explain_failure.h +++ b/plugins/askrene/child/explain_failure.h @@ -1,5 +1,5 @@ -#ifndef LIGHTNING_PLUGINS_ASKRENE_EXPLAIN_FAILURE_H -#define LIGHTNING_PLUGINS_ASKRENE_EXPLAIN_FAILURE_H +#ifndef LIGHTNING_PLUGINS_ASKRENE_CHILD_EXPLAIN_FAILURE_H +#define LIGHTNING_PLUGINS_ASKRENE_CHILD_EXPLAIN_FAILURE_H #include "config.h" #include @@ -13,4 +13,4 @@ const char *explain_failure(const tal_t *ctx, const struct gossmap_node *dstnode, struct amount_msat amount); -#endif /* LIGHTNING_PLUGINS_ASKRENE_EXPLAIN_FAILURE_H */ +#endif /* LIGHTNING_PLUGINS_ASKRENE_CHILD_EXPLAIN_FAILURE_H */ diff --git a/plugins/askrene/flow.c b/plugins/askrene/child/flow.c similarity index 99% rename from plugins/askrene/flow.c rename to plugins/askrene/child/flow.c index 9431f7d5e..2acd952a1 100644 --- a/plugins/askrene/flow.c +++ b/plugins/askrene/child/flow.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include diff --git a/plugins/askrene/flow.h b/plugins/askrene/child/flow.h similarity index 93% rename from plugins/askrene/flow.h rename to plugins/askrene/child/flow.h index 28ac76277..d424676c4 100644 --- a/plugins/askrene/flow.h +++ b/plugins/askrene/child/flow.h @@ -1,5 +1,5 @@ -#ifndef LIGHTNING_PLUGINS_ASKRENE_FLOW_H -#define LIGHTNING_PLUGINS_ASKRENE_FLOW_H +#ifndef LIGHTNING_PLUGINS_ASKRENE_CHILD_FLOW_H +#define LIGHTNING_PLUGINS_ASKRENE_CHILD_FLOW_H #include "config.h" #include #include @@ -66,4 +66,4 @@ const char *fmt_flows_step_scid(const tal_t *ctx, const char *fmt_flow_full(const tal_t *ctx, const struct route_query *rq, const struct flow *flow); -#endif /* LIGHTNING_PLUGINS_ASKRENE_FLOW_H */ +#endif /* LIGHTNING_PLUGINS_ASKRENE_CHILD_FLOW_H */ diff --git a/plugins/askrene/graph.c b/plugins/askrene/child/graph.c similarity index 98% rename from plugins/askrene/graph.c rename to plugins/askrene/child/graph.c index 973e6adcc..7a0d9c1d9 100644 --- a/plugins/askrene/graph.c +++ b/plugins/askrene/child/graph.c @@ -1,5 +1,5 @@ #include "config.h" -#include +#include /* in the background add the actual arc or dual arc */ static void graph_push_outbound_arc(struct graph *graph, const struct arc arc, diff --git a/plugins/askrene/graph.h b/plugins/askrene/child/graph.h similarity index 97% rename from plugins/askrene/graph.h rename to plugins/askrene/child/graph.h index e84ed131b..6107fd654 100644 --- a/plugins/askrene/graph.h +++ b/plugins/askrene/child/graph.h @@ -1,5 +1,5 @@ -#ifndef LIGHTNING_PLUGINS_ASKRENE_GRAPH_H -#define LIGHTNING_PLUGINS_ASKRENE_GRAPH_H +#ifndef LIGHTNING_PLUGINS_ASKRENE_CHILD_GRAPH_H +#define LIGHTNING_PLUGINS_ASKRENE_CHILD_GRAPH_H /* Defines a graph data structure. */ @@ -168,4 +168,4 @@ bool graph_add_arc(struct graph *graph, const struct arc arc, struct graph *graph_new(const tal_t *ctx, const size_t max_num_nodes, const size_t max_num_arcs, const size_t arc_dual_bit); -#endif /* LIGHTNING_PLUGINS_ASKRENE_GRAPH_H */ +#endif /* LIGHTNING_PLUGINS_ASKRENE_CHILD_GRAPH_H */ diff --git a/plugins/askrene/mcf.c b/plugins/askrene/child/mcf.c similarity index 99% rename from plugins/askrene/mcf.c rename to plugins/askrene/child/mcf.c index c3bf28fca..4cca00ccd 100644 --- a/plugins/askrene/mcf.c +++ b/plugins/askrene/child/mcf.c @@ -9,15 +9,14 @@ #include #include #include -#include #include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include /* # Optimal payments diff --git a/plugins/askrene/mcf.h b/plugins/askrene/child/mcf.h similarity index 86% rename from plugins/askrene/mcf.h rename to plugins/askrene/child/mcf.h index 4fce70a50..020b72e94 100644 --- a/plugins/askrene/mcf.h +++ b/plugins/askrene/child/mcf.h @@ -1,8 +1,9 @@ -#ifndef LIGHTNING_PLUGINS_ASKRENE_MCF_H -#define LIGHTNING_PLUGINS_ASKRENE_MCF_H +#ifndef LIGHTNING_PLUGINS_ASKRENE_CHILD_MCF_H +#define LIGHTNING_PLUGINS_ASKRENE_CHILD_MCF_H /* Eduardo Quintela's (lagrang3@protonmail.com) Min Cost Flow implementation * from renepay, as modified to fit askrene */ #include "config.h" +#include #include #include @@ -29,4 +30,4 @@ const char *single_path_routes(const tal_t *ctx, struct route_query *rq, u32 maxdelay, struct flow ***flows, double *probability); -#endif /* LIGHTNING_PLUGINS_ASKRENE_MCF_H */ +#endif /* LIGHTNING_PLUGINS_ASKRENE_CHILD_MCF_H */ diff --git a/plugins/askrene/priorityqueue.c b/plugins/askrene/child/priorityqueue.c similarity index 98% rename from plugins/askrene/priorityqueue.c rename to plugins/askrene/child/priorityqueue.c index 7f0a96cca..3991fb11d 100644 --- a/plugins/askrene/priorityqueue.c +++ b/plugins/askrene/child/priorityqueue.c @@ -1,6 +1,6 @@ #define NDEBUG 1 #include "config.h" -#include +#include /* priorityqueue: a data structure for pairs (key, value) with * 0<=key #include #include -#include -#include +#include +#include #include #include diff --git a/plugins/askrene/refine.h b/plugins/askrene/child/refine.h similarity index 90% rename from plugins/askrene/refine.h rename to plugins/askrene/child/refine.h index 7c1f1ecbd..2726e591e 100644 --- a/plugins/askrene/refine.h +++ b/plugins/askrene/child/refine.h @@ -1,5 +1,5 @@ -#ifndef LIGHTNING_PLUGINS_ASKRENE_REFINE_H -#define LIGHTNING_PLUGINS_ASKRENE_REFINE_H +#ifndef LIGHTNING_PLUGINS_ASKRENE_CHILD_REFINE_H +#define LIGHTNING_PLUGINS_ASKRENE_CHILD_REFINE_H #include "config.h" #include @@ -41,4 +41,4 @@ const char *reduce_num_flows(const tal_t *ctx, struct flow ***flows, struct amount_msat deliver, size_t num_parts); -#endif /* LIGHTNING_PLUGINS_ASKRENE_REFINE_H */ +#endif /* LIGHTNING_PLUGINS_ASKRENE_CHILD_REFINE_H */ diff --git a/plugins/askrene/layer.h b/plugins/askrene/layer.h index 55931cb9b..ab9ab71e1 100644 --- a/plugins/askrene/layer.h +++ b/plugins/askrene/layer.h @@ -14,6 +14,7 @@ #include struct askrene; +struct command; struct layer; struct json_stream; diff --git a/plugins/askrene/reserve.h b/plugins/askrene/reserve.h index cac758923..c58ff72ca 100644 --- a/plugins/askrene/reserve.h +++ b/plugins/askrene/reserve.h @@ -8,6 +8,8 @@ #include #include +struct json_stream; + /* Initialize hash table for reservations */ struct reserve_htable *new_reserve_htable(const tal_t *ctx); diff --git a/plugins/askrene/test/Makefile b/plugins/askrene/test/Makefile index 575947548..c9e06cdab 100644 --- a/plugins/askrene/test/Makefile +++ b/plugins/askrene/test/Makefile @@ -9,12 +9,11 @@ ALL_TEST_PROGRAMS += $(PLUGIN_ASKRENE_TEST_PROGRAMS) $(PLUGIN_RENEPAY_TEST_OBJS): $(PLUGIN_ASKRENE_SRC) plugins/askrene/test/Makefile plugins/askrene/test/run-bfs plugins/askrene/test/run-dijkstra plugins/askrene/test/run-flow plugins/askrene/test/run-mcf plugins/askrene/test/run-mcf-large: \ - plugins/askrene/priorityqueue.o \ - plugins/askrene/graph.o + plugins/askrene/child/priorityqueue.o \ + plugins/askrene/child/graph.o $(PLUGIN_ASKRENE_TEST_PROGRAMS): $(PLUGIN_LIB_OBJS) libcommon.a check-askrene: $(PLUGIN_ASKRENE_TEST_PROGRAMS:%=unittest/%) check-units: check-askrene - diff --git a/plugins/askrene/test/run-bfs.c b/plugins/askrene/test/run-bfs.c index 5c5f0a045..3f15e6313 100644 --- a/plugins/askrene/test/run-bfs.c +++ b/plugins/askrene/test/run-bfs.c @@ -3,11 +3,11 @@ #include #include #include -#include +#include #include #define ASKRENE_UNITTEST -#include "../algorithm.c" +#include "../child/algorithm.c" #define MAX_NODES 256 #define MAX_ARCS 256 diff --git a/plugins/askrene/test/run-dijkstra.c b/plugins/askrene/test/run-dijkstra.c index 3c82e48c0..18c32d0bf 100644 --- a/plugins/askrene/test/run-dijkstra.c +++ b/plugins/askrene/test/run-dijkstra.c @@ -3,11 +3,11 @@ #include #include #include -#include +#include #include #define ASKRENE_UNITTEST -#include "../algorithm.c" +#include "../child/algorithm.c" // 1->2 7 // 1->3 9 diff --git a/plugins/askrene/test/run-flow.c b/plugins/askrene/test/run-flow.c index 0f1eaba8f..a4e541505 100644 --- a/plugins/askrene/test/run-flow.c +++ b/plugins/askrene/test/run-flow.c @@ -3,11 +3,11 @@ #include #include #include -#include +#include #include #define ASKRENE_UNITTEST -#include "../algorithm.c" +#include "../child/algorithm.c" #define MAX_NODES 256 #define MAX_ARCS 256 diff --git a/plugins/askrene/test/run-graph.c b/plugins/askrene/test/run-graph.c index c1017e666..cbbe067f5 100644 --- a/plugins/askrene/test/run-graph.c +++ b/plugins/askrene/test/run-graph.c @@ -7,7 +7,7 @@ #include #define ASKRENE_UNITTEST -#include "../graph.c" +#include "../child/graph.c" #define MAX_NODES 10 #define MAX_ARCS 256 diff --git a/plugins/askrene/test/run-mcf-large.c b/plugins/askrene/test/run-mcf-large.c index ad521956f..2b7ffc166 100644 --- a/plugins/askrene/test/run-mcf-large.c +++ b/plugins/askrene/test/run-mcf-large.c @@ -3,11 +3,11 @@ #include #include #include -#include +#include #include #define ASKRENE_UNITTEST -#include "../algorithm.c" +#include "../child/algorithm.c" #ifdef HAVE_ZLIB #include diff --git a/plugins/askrene/test/run-mcf.c b/plugins/askrene/test/run-mcf.c index aacb51c92..55c647350 100644 --- a/plugins/askrene/test/run-mcf.c +++ b/plugins/askrene/test/run-mcf.c @@ -3,11 +3,11 @@ #include #include #include -#include +#include #include #define ASKRENE_UNITTEST -#include "../algorithm.c" +#include "../child/algorithm.c" #define CHECK(arg) if(!(arg)){fprintf(stderr, "failed CHECK at line %d: %s\n", __LINE__, #arg); abort();} diff --git a/plugins/askrene/test/run-pqueue.c b/plugins/askrene/test/run-pqueue.c index bd7850b93..e22c30eef 100644 --- a/plugins/askrene/test/run-pqueue.c +++ b/plugins/askrene/test/run-pqueue.c @@ -6,7 +6,7 @@ #include #define ASKRENE_UNITTEST -#include "../priorityqueue.c" +#include "../child/priorityqueue.c" #define CHECK(arg) if(!(arg)){fprintf(stderr, "failed CHECK at line %d: %s\n", __LINE__, #arg); abort();}