+ vpn_packet_t packet;
+ meshlink_packethdr_t *hdr = (meshlink_packethdr_t *)packet.data;
+ if (sizeof(meshlink_packethdr_t) + len > MAXSIZE) {
+ //log something
+ return false;
+ }
+
+ packet.probe = false;
+ memset(hdr, 0, sizeof *hdr);
+ memcpy(hdr->destination, destination->name, sizeof hdr->destination);
+ memcpy(hdr->source, mesh->self->name, sizeof hdr->source);
+
+ packet.len = sizeof *hdr + len;
+ memcpy(packet.data + sizeof *hdr, data, len);
+
+ mesh->self->in_packets++;
+ mesh->self->in_bytes += packet.len;
+ route(mesh->self, &packet);