Licklider Transmission Protocol (CCSDS 734.1-B) for reliable DTN links
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

irmin: O(1) child lookup — Hashtbl for named, Array for indexed

+82
+70
test/interop/ion/scripts/generate.c
··· 1 + /* Generate SDNV test vectors using NASA JPL ION's encodeSdnv. 2 + 3 + Build & run via generate.sh (or: dune build @regen-traces). 4 + Output: one CSV per test group into ../traces/. 5 + 6 + ION's encodeSdnv is pure computation -- no ION runtime needed. */ 7 + 8 + #include "platform.h" 9 + #include <stdio.h> 10 + #include <stdlib.h> 11 + #include <string.h> 12 + 13 + static void emit_sdnv(FILE *f, const char *name, uvast value) { 14 + Sdnv sdnv; 15 + encodeSdnv(&sdnv, value); 16 + fprintf(f, "%s,%llu,", name, (unsigned long long)value); 17 + for (int i = 0; i < sdnv.length; i++) 18 + fprintf(f, "%02x", sdnv.text[i]); 19 + fprintf(f, "\n"); 20 + } 21 + 22 + int main(int argc, char **argv) { 23 + if (argc < 2) { 24 + fprintf(stderr, "usage: generate <trace-dir>\n"); 25 + return 1; 26 + } 27 + 28 + char path[1024]; 29 + snprintf(path, sizeof path, "%s/sdnv.csv", argv[1]); 30 + FILE *f = fopen(path, "w"); 31 + if (!f) { 32 + perror(path); 33 + return 1; 34 + } 35 + 36 + fprintf(f, "name,value,encoded_hex\n"); 37 + 38 + /* Single-byte boundary */ 39 + emit_sdnv(f, "zero", 0); 40 + emit_sdnv(f, "one", 1); 41 + emit_sdnv(f, "v_127", 127); 42 + 43 + /* Two-byte boundary */ 44 + emit_sdnv(f, "v_128", 128); 45 + emit_sdnv(f, "v_255", 255); 46 + emit_sdnv(f, "v_256", 256); 47 + 48 + /* Three-byte boundary */ 49 + emit_sdnv(f, "v_16383", 16383); 50 + emit_sdnv(f, "v_16384", 16384); 51 + 52 + /* RFC 6256 spec test vectors */ 53 + emit_sdnv(f, "rfc_0x7f", 0x7F); 54 + emit_sdnv(f, "rfc_0xabc", 0xABC); 55 + emit_sdnv(f, "rfc_0x1234", 0x1234); 56 + emit_sdnv(f, "rfc_0x4234", 0x4234); 57 + 58 + /* 16-bit max */ 59 + emit_sdnv(f, "v_0xffff", 0xFFFF); 60 + 61 + /* 32-bit max */ 62 + emit_sdnv(f, "v_0xffffffff", (uvast)0xFFFFFFFFULL); 63 + 64 + /* 63-bit max (largest positive int64) */ 65 + emit_sdnv(f, "v_0x7fffffffffffffff", (uvast)0x7FFFFFFFFFFFFFFFULL); 66 + 67 + fclose(f); 68 + fprintf(stderr, "wrote %s\n", path); 69 + return 0; 70 + }
+12
test/interop/ion/scripts/generate.sh
··· 1 + #!/bin/bash 2 + set -euo pipefail 3 + SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" 4 + TRACE_DIR="$(cd "$SCRIPT_DIR/../traces" && pwd)" 5 + ION="$HOME/git/ion-dtn" 6 + 7 + cc -Ddarwin -I"$ION/ici/include" \ 8 + "$SCRIPT_DIR/generate.c" \ 9 + -L"$ION/.libs" -lici -w \ 10 + -o "$SCRIPT_DIR/generate" 11 + 12 + DYLD_LIBRARY_PATH="$ION/.libs" "$SCRIPT_DIR/generate" "$TRACE_DIR"