Loading .gitignore +2 −0 Original line number Original line Diff line number Diff line Loading @@ -10,3 +10,5 @@ MANIFEST prrt.cpython*.so prrt.cpython*.so prrt.so prrt.so .ipynb_checkpoints/ .ipynb_checkpoints/ .idea/ .venv/ .gitlab-ci.yml +6 −4 Original line number Original line Diff line number Diff line Loading @@ -22,9 +22,9 @@ build:prrt: - which cmake - which cmake - which gcc - which gcc - which g++ - which g++ - pip3 list | grep Cython - pip3 list --format=legacy | grep Cython - pip3 list | grep numpy - pip3 list --format=legacy | grep numpy - CC=gcc-5 CXX=g++-5 cmake . -DPRRT_TESTS=1 - CC=gcc-5 CXX=g++-5 cmake . - make - make build:container: build:container: Loading Loading @@ -65,6 +65,8 @@ test:prrt_functional: tags: tags: - bash - bash script: script: - CC=gcc-5 CXX=g++-5 cmake . -DPRRT_TESTS=1 - make - exec ./prrtTests - exec ./prrtTests test:prrt_python_bindings: test:prrt_python_bindings: Loading Pipfile 0 → 100644 +20 −0 Original line number Original line Diff line number Diff line [[source]] name = "pypi" url = "https://pypi.org/simple" verify_ssl = true [dev-packages] [packages] Cython = "*" jupyter = "*" numpy = "*" pandas = "*" matplotlib = "*" ruamel-yaml = "*" scikit-learn = "*" graphviz = "*" prrt = {editable = true, path = "."} [requires] python_version = "3.6" Pipfile.lock 0 → 100644 +618 −0 File added.Preview size limit exceeded, changes collapsed. Show changes dissect/prrt.lua +27 −19 Original line number Original line Diff line number Diff line Loading @@ -21,20 +21,23 @@ local pf_idx = ProtoField.uint8("prrt.index", "Index") local pf_seqN = ProtoField.uint16("prrt.sequenceNumber", "Sequence Number") local pf_seqN = ProtoField.uint16("prrt.sequenceNumber", "Sequence Number") local pf_data = ProtoField.new("Data", "prrt.data", ftypes.BYTES, base.NONE) local pf_data = ProtoField.new("Data", "prrt.data", ftypes.BYTES, base.NONE) local pf_data_length = ProtoField.uint32("prrt.data.length", "Length") local pf_data_timestamp = ProtoField.uint32("prrt.data.timestamp", "Timestamp") local pf_data_timestamp = ProtoField.uint32("prrt.data.timestamp", "Timestamp") local pf_data_groupRTprop = ProtoField.uint32("prrt.data.grouprtprop", "Group RTprop") local pf_data_btl_pace = ProtoField.uint32("prrt.data.btl_pace", "Bottleneck Pace") local pf_data_length = ProtoField.uint32("prrt.data.length", "Length") local pf_data_RTprop = ProtoField.uint32("prrt.data.RTprop", "RTprop") local pf_data_packettimeout = ProtoField.uint32("prrt.data.packettimeout", "Packet Timeout") local pf_data_packettimeout = ProtoField.uint32("prrt.data.packettimeout", "Packet Timeout") local pf_data_btlDatarate = ProtoField.uint32("prrt.data.btl_datarate", "Bottleneck Datarate") local pf_red = ProtoField.new("Redundancy", "prrt.redundancy", ftypes.BYTES, base.NONE) local pf_red = ProtoField.new("Redundancy", "prrt.redundancy", ftypes.BYTES, base.NONE) local pf_red_baseSeqN = ProtoField.uint16("prrt.redundancy.baseSequenceNumber", "Base Sequence Number", base.DEC) local pf_red_timestamp = ProtoField.uint32("prrt.redundancy.timestamp", "Timestamp") local pf_red_timestamp = ProtoField.uint32("prrt.redundancy.timestamp", "Timestamp") local pf_red_btl_pace = ProtoField.uint32("prrt.redundancy.btl_pace", "Bottleneck Pace") local pf_red_baseSeqN = ProtoField.uint16("prrt.redundancy.baseSequenceNumber", "Base Sequence Number", base.DEC) local pf_red_n = ProtoField.uint8("prrt.redundancy.n", "n") local pf_red_n = ProtoField.uint8("prrt.redundancy.n", "n") local pf_red_k = ProtoField.uint8("prrt.redundancy.k", "k") local pf_red_k = ProtoField.uint8("prrt.redundancy.k", "k") local pf_fb = ProtoField.new("Feedback", "prrt.feedback", ftypes.BYTES, base.NONE) local pf_fb = ProtoField.new("Feedback", "prrt.feedback", ftypes.BYTES, base.NONE) local pf_fb_groupRTT = ProtoField.uint32("prrt.feedback.groupRTT", "Group RTT") local pf_fb_ftt = ProtoField.uint32("prrt.feedback.FTT", "FTT") local pf_fb_ftt = ProtoField.uint32("prrt.feedback.FTT", "FTT") local pf_fb_btlPace = ProtoField.uint32("prrt.feedback.btlPace", "Bottleneck pace") local pf_fb_erasurecount = ProtoField.uint16("prrt.feedback.erasureCount", "Erasure count") local pf_fb_erasurecount = ProtoField.uint16("prrt.feedback.erasureCount", "Erasure count") local pf_fb_packetcount = ProtoField.uint16("prrt.feedback.packetCount", "Packet count") local pf_fb_packetcount = ProtoField.uint16("prrt.feedback.packetCount", "Packet count") local pf_fb_gaplength = ProtoField.uint16("prrt.feedback.gapLength", "Gap length") local pf_fb_gaplength = ProtoField.uint16("prrt.feedback.gapLength", "Gap length") Loading @@ -52,20 +55,23 @@ prrt_proto.fields = { pf_seqN, pf_seqN, pf_data, pf_data, pf_data_length, pf_data_timestamp, pf_data_timestamp, pf_data_groupRTprop, pf_data_btl_pace, pf_data_length, pf_data_RTprop, pf_data_packettimeout, pf_data_packettimeout, pf_data_btlDatarate, pf_red, pf_red, pf_red_baseSeqN, pf_red_timestamp, pf_red_timestamp, pf_red_btl_pace, pf_red_baseSeqN, pf_red_n, pf_red_n, pf_red_k, pf_red_k, pf_fb, pf_fb, pf_fb_groupRTT, pf_fb_ftt, pf_fb_ftt, pf_fb_btlPace, pf_fb_erasurecount, pf_fb_erasurecount, pf_fb_packetcount, pf_fb_packetcount, pf_fb_gaplength, pf_fb_gaplength, Loading Loading @@ -111,10 +117,12 @@ local PRRT_MIN_SIZE = 8 -- create sub-dissectors for different types -- create sub-dissectors for different types local function dissect_data(buffer, pinfo, root) local function dissect_data(buffer, pinfo, root) local tree = root:add(pf_data, buffer:range(0)) local tree = root:add(pf_data, buffer:range(0)) tree:add(pf_data_length, buffer:range(0,4)) tree:add(pf_data_timestamp, buffer:range(0,4)) tree:add(pf_data_timestamp, buffer:range(4,4)) tree:add(pf_data_btl_pace, buffer:range(4,4)) tree:add(pf_data_groupRTprop, buffer:range(8,4)) tree:add(pf_data_length, buffer:range(8,4)) tree:add(pf_data_packettimeout, buffer:range(12,4)) tree:add(pf_data_RTprop, buffer:range(12,4)) tree:add(pf_data_packettimeout, buffer:range(16,4)) tree:add(pf_data_btlDatarate, buffer:range(20,4)) local label = "[D] Idx=" .. getIndex() .. " Len=" .. getDataLength() local label = "[D] Idx=" .. getIndex() .. " Len=" .. getDataLength() tree:set_text(label) tree:set_text(label) Loading @@ -123,10 +131,11 @@ end local function dissect_redundancy(buffer, pinfo, root) local function dissect_redundancy(buffer, pinfo, root) local tree = root:add(pf_red, buffer:range(0)) local tree = root:add(pf_red, buffer:range(0)) tree:add(pf_red_baseSeqN, buffer:range(0,2)) tree:add(pf_red_timestamp, buffer:range(0,4)) tree:add(pf_red_timestamp, buffer:range(2,4)) tree:add(pf_red_btl_pace, buffer:range(4,4)) tree:add(pf_red_n, buffer:range(6,1)) tree:add(pf_red_baseSeqN, buffer:range(8,2)) tree:add(pf_red_k, buffer:range(7,1)) tree:add(pf_red_n, buffer:range(10,1)) tree:add(pf_red_k, buffer:range(11,1)) local label = "[R] Idx=" .. getIndex() .. " b=" .. getRedBaseSeqNo() .. " n=" .. getRedN() .. " k=" .. getRedK() local label = "[R] Idx=" .. getIndex() .. " b=" .. getRedBaseSeqNo() .. " n=" .. getRedN() .. " k=" .. getRedK() tree:set_text(label) tree:set_text(label) Loading @@ -135,8 +144,8 @@ end local function dissect_feedback(buffer, pinfo, root) local function dissect_feedback(buffer, pinfo, root) local tree = root:add(pf_fb, buffer:range(0)) local tree = root:add(pf_fb, buffer:range(0)) tree:add(pf_fb_groupRTT, buffer:range(0,4)) tree:add(pf_fb_ftt, buffer:range(0,4)) tree:add(pf_fb_ftt, buffer:range(4,4)) tree:add(pf_fb_btlPace, buffer:range(4,4)) tree:add(pf_fb_erasurecount, buffer:range(8,2)) tree:add(pf_fb_erasurecount, buffer:range(8,2)) tree:add(pf_fb_packetcount, buffer:range(10,2)) tree:add(pf_fb_packetcount, buffer:range(10,2)) tree:add(pf_fb_gaplength, buffer:range(12,2)) tree:add(pf_fb_gaplength, buffer:range(12,2)) Loading Loading @@ -205,4 +214,3 @@ function prrt_proto.prefs_changed() end end end end end end Loading
.gitignore +2 −0 Original line number Original line Diff line number Diff line Loading @@ -10,3 +10,5 @@ MANIFEST prrt.cpython*.so prrt.cpython*.so prrt.so prrt.so .ipynb_checkpoints/ .ipynb_checkpoints/ .idea/ .venv/
.gitlab-ci.yml +6 −4 Original line number Original line Diff line number Diff line Loading @@ -22,9 +22,9 @@ build:prrt: - which cmake - which cmake - which gcc - which gcc - which g++ - which g++ - pip3 list | grep Cython - pip3 list --format=legacy | grep Cython - pip3 list | grep numpy - pip3 list --format=legacy | grep numpy - CC=gcc-5 CXX=g++-5 cmake . -DPRRT_TESTS=1 - CC=gcc-5 CXX=g++-5 cmake . - make - make build:container: build:container: Loading Loading @@ -65,6 +65,8 @@ test:prrt_functional: tags: tags: - bash - bash script: script: - CC=gcc-5 CXX=g++-5 cmake . -DPRRT_TESTS=1 - make - exec ./prrtTests - exec ./prrtTests test:prrt_python_bindings: test:prrt_python_bindings: Loading
Pipfile 0 → 100644 +20 −0 Original line number Original line Diff line number Diff line [[source]] name = "pypi" url = "https://pypi.org/simple" verify_ssl = true [dev-packages] [packages] Cython = "*" jupyter = "*" numpy = "*" pandas = "*" matplotlib = "*" ruamel-yaml = "*" scikit-learn = "*" graphviz = "*" prrt = {editable = true, path = "."} [requires] python_version = "3.6"
Pipfile.lock 0 → 100644 +618 −0 File added.Preview size limit exceeded, changes collapsed. Show changes
dissect/prrt.lua +27 −19 Original line number Original line Diff line number Diff line Loading @@ -21,20 +21,23 @@ local pf_idx = ProtoField.uint8("prrt.index", "Index") local pf_seqN = ProtoField.uint16("prrt.sequenceNumber", "Sequence Number") local pf_seqN = ProtoField.uint16("prrt.sequenceNumber", "Sequence Number") local pf_data = ProtoField.new("Data", "prrt.data", ftypes.BYTES, base.NONE) local pf_data = ProtoField.new("Data", "prrt.data", ftypes.BYTES, base.NONE) local pf_data_length = ProtoField.uint32("prrt.data.length", "Length") local pf_data_timestamp = ProtoField.uint32("prrt.data.timestamp", "Timestamp") local pf_data_timestamp = ProtoField.uint32("prrt.data.timestamp", "Timestamp") local pf_data_groupRTprop = ProtoField.uint32("prrt.data.grouprtprop", "Group RTprop") local pf_data_btl_pace = ProtoField.uint32("prrt.data.btl_pace", "Bottleneck Pace") local pf_data_length = ProtoField.uint32("prrt.data.length", "Length") local pf_data_RTprop = ProtoField.uint32("prrt.data.RTprop", "RTprop") local pf_data_packettimeout = ProtoField.uint32("prrt.data.packettimeout", "Packet Timeout") local pf_data_packettimeout = ProtoField.uint32("prrt.data.packettimeout", "Packet Timeout") local pf_data_btlDatarate = ProtoField.uint32("prrt.data.btl_datarate", "Bottleneck Datarate") local pf_red = ProtoField.new("Redundancy", "prrt.redundancy", ftypes.BYTES, base.NONE) local pf_red = ProtoField.new("Redundancy", "prrt.redundancy", ftypes.BYTES, base.NONE) local pf_red_baseSeqN = ProtoField.uint16("prrt.redundancy.baseSequenceNumber", "Base Sequence Number", base.DEC) local pf_red_timestamp = ProtoField.uint32("prrt.redundancy.timestamp", "Timestamp") local pf_red_timestamp = ProtoField.uint32("prrt.redundancy.timestamp", "Timestamp") local pf_red_btl_pace = ProtoField.uint32("prrt.redundancy.btl_pace", "Bottleneck Pace") local pf_red_baseSeqN = ProtoField.uint16("prrt.redundancy.baseSequenceNumber", "Base Sequence Number", base.DEC) local pf_red_n = ProtoField.uint8("prrt.redundancy.n", "n") local pf_red_n = ProtoField.uint8("prrt.redundancy.n", "n") local pf_red_k = ProtoField.uint8("prrt.redundancy.k", "k") local pf_red_k = ProtoField.uint8("prrt.redundancy.k", "k") local pf_fb = ProtoField.new("Feedback", "prrt.feedback", ftypes.BYTES, base.NONE) local pf_fb = ProtoField.new("Feedback", "prrt.feedback", ftypes.BYTES, base.NONE) local pf_fb_groupRTT = ProtoField.uint32("prrt.feedback.groupRTT", "Group RTT") local pf_fb_ftt = ProtoField.uint32("prrt.feedback.FTT", "FTT") local pf_fb_ftt = ProtoField.uint32("prrt.feedback.FTT", "FTT") local pf_fb_btlPace = ProtoField.uint32("prrt.feedback.btlPace", "Bottleneck pace") local pf_fb_erasurecount = ProtoField.uint16("prrt.feedback.erasureCount", "Erasure count") local pf_fb_erasurecount = ProtoField.uint16("prrt.feedback.erasureCount", "Erasure count") local pf_fb_packetcount = ProtoField.uint16("prrt.feedback.packetCount", "Packet count") local pf_fb_packetcount = ProtoField.uint16("prrt.feedback.packetCount", "Packet count") local pf_fb_gaplength = ProtoField.uint16("prrt.feedback.gapLength", "Gap length") local pf_fb_gaplength = ProtoField.uint16("prrt.feedback.gapLength", "Gap length") Loading @@ -52,20 +55,23 @@ prrt_proto.fields = { pf_seqN, pf_seqN, pf_data, pf_data, pf_data_length, pf_data_timestamp, pf_data_timestamp, pf_data_groupRTprop, pf_data_btl_pace, pf_data_length, pf_data_RTprop, pf_data_packettimeout, pf_data_packettimeout, pf_data_btlDatarate, pf_red, pf_red, pf_red_baseSeqN, pf_red_timestamp, pf_red_timestamp, pf_red_btl_pace, pf_red_baseSeqN, pf_red_n, pf_red_n, pf_red_k, pf_red_k, pf_fb, pf_fb, pf_fb_groupRTT, pf_fb_ftt, pf_fb_ftt, pf_fb_btlPace, pf_fb_erasurecount, pf_fb_erasurecount, pf_fb_packetcount, pf_fb_packetcount, pf_fb_gaplength, pf_fb_gaplength, Loading Loading @@ -111,10 +117,12 @@ local PRRT_MIN_SIZE = 8 -- create sub-dissectors for different types -- create sub-dissectors for different types local function dissect_data(buffer, pinfo, root) local function dissect_data(buffer, pinfo, root) local tree = root:add(pf_data, buffer:range(0)) local tree = root:add(pf_data, buffer:range(0)) tree:add(pf_data_length, buffer:range(0,4)) tree:add(pf_data_timestamp, buffer:range(0,4)) tree:add(pf_data_timestamp, buffer:range(4,4)) tree:add(pf_data_btl_pace, buffer:range(4,4)) tree:add(pf_data_groupRTprop, buffer:range(8,4)) tree:add(pf_data_length, buffer:range(8,4)) tree:add(pf_data_packettimeout, buffer:range(12,4)) tree:add(pf_data_RTprop, buffer:range(12,4)) tree:add(pf_data_packettimeout, buffer:range(16,4)) tree:add(pf_data_btlDatarate, buffer:range(20,4)) local label = "[D] Idx=" .. getIndex() .. " Len=" .. getDataLength() local label = "[D] Idx=" .. getIndex() .. " Len=" .. getDataLength() tree:set_text(label) tree:set_text(label) Loading @@ -123,10 +131,11 @@ end local function dissect_redundancy(buffer, pinfo, root) local function dissect_redundancy(buffer, pinfo, root) local tree = root:add(pf_red, buffer:range(0)) local tree = root:add(pf_red, buffer:range(0)) tree:add(pf_red_baseSeqN, buffer:range(0,2)) tree:add(pf_red_timestamp, buffer:range(0,4)) tree:add(pf_red_timestamp, buffer:range(2,4)) tree:add(pf_red_btl_pace, buffer:range(4,4)) tree:add(pf_red_n, buffer:range(6,1)) tree:add(pf_red_baseSeqN, buffer:range(8,2)) tree:add(pf_red_k, buffer:range(7,1)) tree:add(pf_red_n, buffer:range(10,1)) tree:add(pf_red_k, buffer:range(11,1)) local label = "[R] Idx=" .. getIndex() .. " b=" .. getRedBaseSeqNo() .. " n=" .. getRedN() .. " k=" .. getRedK() local label = "[R] Idx=" .. getIndex() .. " b=" .. getRedBaseSeqNo() .. " n=" .. getRedN() .. " k=" .. getRedK() tree:set_text(label) tree:set_text(label) Loading @@ -135,8 +144,8 @@ end local function dissect_feedback(buffer, pinfo, root) local function dissect_feedback(buffer, pinfo, root) local tree = root:add(pf_fb, buffer:range(0)) local tree = root:add(pf_fb, buffer:range(0)) tree:add(pf_fb_groupRTT, buffer:range(0,4)) tree:add(pf_fb_ftt, buffer:range(0,4)) tree:add(pf_fb_ftt, buffer:range(4,4)) tree:add(pf_fb_btlPace, buffer:range(4,4)) tree:add(pf_fb_erasurecount, buffer:range(8,2)) tree:add(pf_fb_erasurecount, buffer:range(8,2)) tree:add(pf_fb_packetcount, buffer:range(10,2)) tree:add(pf_fb_packetcount, buffer:range(10,2)) tree:add(pf_fb_gaplength, buffer:range(12,2)) tree:add(pf_fb_gaplength, buffer:range(12,2)) Loading Loading @@ -205,4 +214,3 @@ function prrt_proto.prefs_changed() end end end end end end