Skip to content

Commit 9351987

Browse files
committed
splice: Add start_batch and an internal wire type
We add `start_batch` to match t-bast’s splicing spec and we add a new internal wire type `WIRE_PROTOCOL_BATCH_ELEMENT` using the type number 0 Changelog-Added: support for `start_batch`
1 parent c602a8a commit 9351987

File tree

10 files changed

+44
-0
lines changed

10 files changed

+44
-0
lines changed

channeld/channeld.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4906,6 +4906,8 @@ static void peer_in(struct peer *peer, const u8 *msg)
49064906
case WIRE_UPDATE_ADD_HTLC:
49074907
handle_peer_add_htlc(peer, msg);
49084908
return;
4909+
case WIRE_START_BATCH:
4910+
return;
49094911
case WIRE_COMMITMENT_SIGNED:
49104912
handle_peer_commit_sig_batch(peer, msg, 0,
49114913
peer->channel->funding_pubkey[REMOTE],
@@ -4976,6 +4978,7 @@ static void peer_in(struct peer *peer, const u8 *msg)
49764978
return;
49774979

49784980
/* These are all swallowed by connectd */
4981+
case WIRE_PROTOCOL_BATCH_ELEMENT:
49794982
case WIRE_CHANNEL_ANNOUNCEMENT:
49804983
case WIRE_CHANNEL_UPDATE:
49814984
case WIRE_NODE_ANNOUNCEMENT:

common/gossmap.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1799,6 +1799,8 @@ const void *gossmap_stream_next(const tal_t *ctx,
17991799
case WIRE_UPDATE_FULFILL_HTLC:
18001800
case WIRE_UPDATE_FAIL_HTLC:
18011801
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
1802+
case WIRE_PROTOCOL_BATCH_ELEMENT:
1803+
case WIRE_START_BATCH:
18021804
case WIRE_COMMITMENT_SIGNED:
18031805
case WIRE_REVOKE_AND_ACK:
18041806
case WIRE_UPDATE_FEE:

common/interactivetx.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ static u8 *read_next_msg(const tal_t *ctx,
167167
case WIRE_UPDATE_FULFILL_HTLC:
168168
case WIRE_UPDATE_FAIL_HTLC:
169169
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
170+
case WIRE_PROTOCOL_BATCH_ELEMENT:
171+
case WIRE_START_BATCH:
170172
case WIRE_COMMITMENT_SIGNED:
171173
case WIRE_REVOKE_AND_ACK:
172174
case WIRE_UPDATE_FEE:
@@ -821,6 +823,8 @@ char *process_interactivetx_updates(const tal_t *ctx,
821823
case WIRE_UPDATE_FULFILL_HTLC:
822824
case WIRE_UPDATE_FAIL_HTLC:
823825
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
826+
case WIRE_PROTOCOL_BATCH_ELEMENT:
827+
case WIRE_START_BATCH:
824828
case WIRE_COMMITMENT_SIGNED:
825829
case WIRE_REVOKE_AND_ACK:
826830
case WIRE_UPDATE_FEE:

connectd/gossip_rcvd_filter.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ static bool is_msg_gossip_broadcast(const u8 *cursor)
7373
case WIRE_UPDATE_FULFILL_HTLC:
7474
case WIRE_UPDATE_FAIL_HTLC:
7575
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
76+
case WIRE_PROTOCOL_BATCH_ELEMENT:
77+
case WIRE_START_BATCH:
7678
case WIRE_COMMITMENT_SIGNED:
7779
case WIRE_REVOKE_AND_ACK:
7880
case WIRE_UPDATE_FEE:

connectd/gossip_store.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ static bool public_msg_type(enum peer_wire type)
8282
case WIRE_UPDATE_FULFILL_HTLC:
8383
case WIRE_UPDATE_FAIL_HTLC:
8484
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
85+
case WIRE_PROTOCOL_BATCH_ELEMENT:
86+
case WIRE_START_BATCH:
8587
case WIRE_COMMITMENT_SIGNED:
8688
case WIRE_REVOKE_AND_ACK:
8789
case WIRE_UPDATE_FEE:

connectd/multiplex.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,8 @@ static bool is_urgent(enum peer_wire type)
382382
/* These are time-sensitive, and so send without delay. */
383383
case WIRE_PING:
384384
case WIRE_PONG:
385+
case WIRE_PROTOCOL_BATCH_ELEMENT:
386+
case WIRE_START_BATCH:
385387
case WIRE_COMMITMENT_SIGNED:
386388
case WIRE_REVOKE_AND_ACK:
387389
return true;

gossipd/gossipd.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,8 @@ static void handle_recv_gossip(struct daemon *daemon, const u8 *outermsg)
244244
case WIRE_UPDATE_FULFILL_HTLC:
245245
case WIRE_UPDATE_FAIL_HTLC:
246246
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
247+
case WIRE_PROTOCOL_BATCH_ELEMENT:
248+
case WIRE_START_BATCH:
247249
case WIRE_COMMITMENT_SIGNED:
248250
case WIRE_REVOKE_AND_ACK:
249251
case WIRE_UPDATE_FEE:

openingd/dualopend.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1673,6 +1673,8 @@ static u8 *opening_negotiate_msg(const tal_t *ctx, struct state *state)
16731673
case WIRE_UPDATE_FULFILL_HTLC:
16741674
case WIRE_UPDATE_FAIL_HTLC:
16751675
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
1676+
case WIRE_PROTOCOL_BATCH_ELEMENT:
1677+
case WIRE_START_BATCH:
16761678
case WIRE_COMMITMENT_SIGNED:
16771679
case WIRE_REVOKE_AND_ACK:
16781680
case WIRE_UPDATE_FEE:
@@ -2057,6 +2059,8 @@ static bool run_tx_interactive(struct state *state,
20572059
case WIRE_UPDATE_FULFILL_HTLC:
20582060
case WIRE_UPDATE_FAIL_HTLC:
20592061
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
2062+
case WIRE_PROTOCOL_BATCH_ELEMENT:
2063+
case WIRE_START_BATCH:
20602064
case WIRE_COMMITMENT_SIGNED:
20612065
case WIRE_REVOKE_AND_ACK:
20622066
case WIRE_UPDATE_FEE:
@@ -4196,6 +4200,9 @@ static u8 *handle_peer_in(struct state *state)
41964200
}
41974201
accepter_start(state, msg);
41984202
return NULL;
4203+
case WIRE_START_BATCH:
4204+
/* We ignore batch messages as we dont need them */
4205+
return NULL;
41994206
case WIRE_COMMITMENT_SIGNED:
42004207
handle_commit_signed(state, msg);
42014208
return NULL;
@@ -4257,6 +4264,7 @@ static u8 *handle_peer_in(struct state *state)
42574264
case WIRE_SPLICE:
42584265
case WIRE_SPLICE_ACK:
42594266
case WIRE_SPLICE_LOCKED:
4267+
case WIRE_PROTOCOL_BATCH_ELEMENT:
42604268
break;
42614269
}
42624270

wire/peer_wire.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ static bool unknown_type(enum peer_wire t)
2121
case WIRE_UPDATE_FULFILL_HTLC:
2222
case WIRE_UPDATE_FAIL_HTLC:
2323
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
24+
case WIRE_PROTOCOL_BATCH_ELEMENT:
25+
case WIRE_START_BATCH:
2426
case WIRE_COMMITMENT_SIGNED:
2527
case WIRE_REVOKE_AND_ACK:
2628
case WIRE_UPDATE_FEE:
@@ -89,6 +91,8 @@ bool is_msg_for_gossipd(const u8 *cursor)
8991
case WIRE_UPDATE_FULFILL_HTLC:
9092
case WIRE_UPDATE_FAIL_HTLC:
9193
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
94+
case WIRE_PROTOCOL_BATCH_ELEMENT:
95+
case WIRE_START_BATCH:
9296
case WIRE_COMMITMENT_SIGNED:
9397
case WIRE_REVOKE_AND_ACK:
9498
case WIRE_UPDATE_FEE:
@@ -166,6 +170,7 @@ bool extract_channel_id(const u8 *in_pkt, struct channel_id *channel_id)
166170
case WIRE_ONION_MESSAGE:
167171
case WIRE_PEER_STORAGE:
168172
case WIRE_PEER_STORAGE_RETRIEVAL:
173+
case WIRE_PROTOCOL_BATCH_ELEMENT:
169174
return false;
170175

171176
/* Special cases: */
@@ -345,6 +350,11 @@ bool extract_channel_id(const u8 *in_pkt, struct channel_id *channel_id)
345350
* 2. data:
346351
* * [`channel_id`:`channel_id`]
347352
*/
353+
case WIRE_START_BATCH:
354+
/* 1. type: 127 (`start_batch`)
355+
* 2. data:
356+
* * [`channel_id`:`channel_id`]
357+
*/
348358
case WIRE_COMMITMENT_SIGNED:
349359
/* BOLT #2:
350360
* 1. type: 132 (`commitment_signed`)

wire/peer_wire.csv

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
msgtype,protocol_batch_element,0
2+
msgdata,protocol_batch_element,channel_id,channel_id,
3+
msgdata,protocol_batch_element,element_size,u16,
14
msgtype,init,16
25
msgdata,init,gflen,u16,
36
msgdata,init,globalfeatures,byte,gflen
@@ -293,6 +296,12 @@ msgdata,update_fail_malformed_htlc,channel_id,channel_id,
293296
msgdata,update_fail_malformed_htlc,id,u64,
294297
msgdata,update_fail_malformed_htlc,sha256_of_onion,sha256,
295298
msgdata,update_fail_malformed_htlc,failure_code,u16,
299+
msgtype,start_batch,127
300+
msgdata,start_batch,channel_id,channel_id,
301+
msgdata,start_batch,batch_size,u16,
302+
msgdata,start_batch,batch_info,start_batch_tlvs,
303+
tlvtype,start_batch_tlvs,batch_info,1
304+
tlvdata,start_batch_tlvs,batch_info,message_type,u16,
296305
msgtype,commitment_signed,132
297306
msgdata,commitment_signed,channel_id,channel_id,
298307
msgdata,commitment_signed,signature,signature,

0 commit comments

Comments
 (0)