summaryrefslogtreecommitdiffstats
path: root/ffd/send.c
diff options
context:
space:
mode:
Diffstat (limited to 'ffd/send.c')
-rw-r--r--ffd/send.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/ffd/send.c b/ffd/send.c
index 9e36456..ebda0de 100644
--- a/ffd/send.c
+++ b/ffd/send.c
@@ -300,3 +300,21 @@ void ffd_send_announce_request(ffd_iface_t *iface, ffd_neigh_t *neigh, ffd_node_
send_any(iface, neigh, packet);
}
+
+void ffd_send_seqno_request(ffd_neigh_t *neigh, ffd_announce_t *announce, uint16_t seqno) {
+ ffd_packet_t *packet = alloca(sizeof(ffd_packet_t)+FFD_PACKET_MAX);
+
+ packet->version_magic = htons(FFD_VERSION_MAGIC);
+ packet->len = 0;
+
+ ffd_tlv_seqno_req_t *req = ffd_tlv_add(packet, FFD_PACKET_MAX, TLV_SEQNO_REQ, sizeof(ffd_tlv_seqno_req_t));
+ if (!req)
+ return;
+
+ req->seqno = htons(seqno);
+ req->node = announce->node;
+ req->type = htons(announce->type);
+ req->key = htons(announce->key);
+
+ send_any(NULL, neigh, packet);
+}