➜ ttproto git:(validation_module) ✗ python3 -m ttproto analyze ./tests/test_dumps/analysis/lwm2m_pro/TD_LWM2M_1_INT_204_PASS.pcap -p lwm2m -tc TD_LWM2M_1_INT_204
INFO tat|ttproto_api [MainThread] Analyzing PCAP file ./tests/test_dumps/analysis/lwm2m_pro/TD_LWM2M_1_INT_204_PASS.pcap
INFO root [MainThread] ObjectID: 3
INFO root [MainThread] Registry url: http://www.openmobilealliance.org/api/lwm2m/v1/Object?ObjectID=3
INFO root [MainThread] ObjectLink: http://www.openmobilealliance.org/tech/profiles/LWM2M_Device-v1_0_1.xml
INFO root [MainThread] ResourceID: 11
INFO root [MainThread] Name: Error Code
INFO root [MainThread] Type: Integer
INFO root [MainThread] Operations: R
INFO root [MainThread] MultipleInstances: Multiple
INFO root [MainThread] Found!
INFO root [MainThread] ResourceID: 16
INFO root [MainThread] Name: Supported Binding and Modes
INFO root [MainThread] Type: String
INFO root [MainThread] Operations: R
INFO root [MainThread] MultipleInstances: Single
INFO root [MainThread] Found!
INFO root [MainThread] Validation: pass
INFO tat|ttproto_api [MainThread] analysis result: ('TD_LWM2M_1_INT_204', 'pass', [], "<Frame 1: [127.0.0.1 -> 127.0.0.1] CoAP [CON 62326] GET /3/0>\n [ pass ] <Frame 1: [127.0.0.1 -> 127.0.0.1] CoAP [CON 62326] GET /3/0> Match: CoAP(type=0, code=1)\n [ pass ] <Frame 1: [127.0.0.1 -> 127.0.0.1] CoAP [CON 62326] GET /3/0> Match: CoAP(pl=b'')\n [ pass ] <Frame 1: [127.0.0.1 -> 127.0.0.1] CoAP [CON 62326] GET /3/0> Match: CoAP(opt=Opt(CoAPOptionAccept(val=11543)))\n<Frame 2: [127.0.0.1 -> 127.0.0.1] CoAP [ACK 62326] 2.05 Content >\n [ pass ] <Frame 2: [127.0.0.1 -> 127.0.0.1] CoAP [ACK 62326] 2.05 Content > Match: CoAP(code=69, pl=Not(b''))\n [ pass ] <Frame 2: [127.0.0.1 -> 127.0.0.1] CoAP [ACK 62326] 2.05 Content > Match: CoAP(opt=Opt(CoAPOptionContentFormat(val=11543)))\n [ pass ] payload validation\n", [('pass', '<Frame 1: [127.0.0.1 -> 127.0.0.1] CoAP [CON 62326] GET /3/0> Match: CoAP(type=0, code=1)'), ('pass', "<Frame 1: [127.0.0.1 -> 127.0.0.1] CoAP [CON 62326] GET /3/0> Match: CoAP(pl=b'')"), ('pass', '<Frame 1: [127.0.0.1 -> 127.0.0.1] CoAP [CON 62326] GET /3/0> Match: CoAP(opt=Opt(CoAPOptionAccept(val=11543)))'), ('pass', "<Frame 2: [127.0.0.1 -> 127.0.0.1] CoAP [ACK 62326] 2.05 Content > Match: CoAP(code=69, pl=Not(b''))"), ('pass', '<Frame 2: [127.0.0.1 -> 127.0.0.1] CoAP [ACK 62326] 2.05 Content > Match: CoAP(opt=Opt(CoAPOptionContentFormat(val=11543)))'), ('pass', 'payload validation')], [])
INFO tat|main [MainThread] result: pass
INFO tat|main [MainThread] details:
<Frame 1: [127.0.0.1 -> 127.0.0.1] CoAP [CON 62326] GET /3/0>
[ pass ] <Frame 1: [127.0.0.1 -> 127.0.0.1] CoAP [CON 62326] GET /3/0> Match: CoAP(type=0, code=1)
[ pass ] <Frame 1: [127.0.0.1 -> 127.0.0.1] CoAP [CON 62326] GET /3/0> Match: CoAP(pl=b'')
[ pass ] <Frame 1: [127.0.0.1 -> 127.0.0.1] CoAP [CON 62326] GET /3/0> Match: CoAP(opt=Opt(CoAPOptionAccept(val=11543)))
<Frame 2: [127.0.0.1 -> 127.0.0.1] CoAP [ACK 62326] 2.05 Content >
[ pass ] <Frame 2: [127.0.0.1 -> 127.0.0.1] CoAP [ACK 62326] 2.05 Content > Match: CoAP(code=69, pl=Not(b''))
[ pass ] <Frame 2: [127.0.0.1 -> 127.0.0.1] CoAP [ACK 62326] 2.05 Content > Match: CoAP(opt=Opt(CoAPOptionContentFormat(val=11543)))
[ pass ] payload validation