1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright 2019 Daniel Estevez <daniel@destevez.net>
#
# This file is part of gr-satellites
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
from construct import *
Address = BitsInteger(5)
Port = BitsInteger(6)
CSPHeader = BitStruct(
'priority' / BitsInteger(2),
'source' / Address,
'destination' / Address,
'destination_port' / Port,
'source_port' / Port,
'reserved' / BitsInteger(3),
'fragmentation' / Flag,
'hmac' / Flag,
'xtea' / Flag,
'rdp' / Flag,
'crc' / Flag
)
Addressv2 = BitsInteger(14)
CSPHeaderv2 = BitStruct(
'priority' / BitsInteger(2),
'destination' / Addressv2,
'source' / Addressv2,
'destination_port' / Port,
'source_port' / Port,
'reserved' / BitsInteger(2),
'hmac' / Flag,
'xtea' / Flag,
'rdp' / Flag,
'crc' / Flag
)
csp = Struct(
'header' / CSPHeader,
'payload' / GreedyBytes
)
cspv2 = Struct(
'header' / CSPHeaderv2,
'payload' / GreedyBytes
)
|