kbandla / dpkt

fast, simple packet creation / parsing, with definitions for the basic TCP/IP protocols
Other
1.1k stars 271 forks source link

First RTCP implementation (RFC3550 and RFC3611) #650

Closed pajarom closed 1 year ago

pajarom commented 1 year ago

Using RTP as a base, implement RTCP protocol Reports (RFC3550) including Extended Reports (RFC3611).

pajarom commented 1 year ago

Not sure if I need to do anything to fix 3.5 failure.

obormot commented 1 year ago

Looks like Github actions failure we haven't seen before. Error: Version 3.5 with arch x64 not found The list of all available versions can be found here: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json

There's no "3.5" version according to this ^^ , but "3.5.4", "3.5.9", "3.5.10" exist. Same for other Python versions.. this all worked before. @brifordwylie any ideas?

[UPD]: this looks relevant https://stackoverflow.com/questions/74673048/github-actions-setup-python-stopped-working

obormot commented 1 year ago

filed https://github.com/kbandla/dpkt/issues/651 to address the build failures

coveralls commented 1 year ago

Coverage Status

Coverage: 99.826% (+0.009%) from 99.818% when pulling 4a878cf57db608a89bbdc1962e91504419fe9054 on pajarom:rtcp into aa15f54a3490d7ae69faa1bfcc528367f908ac13 on kbandla:master.

obormot commented 1 year ago

no worries about these tiniest drops in coverage (like -0.0006%), it's more of a known issue with Coveralls and will not prevent the merge

obormot commented 1 year ago

@pajarom Thanks for the contribution. The parser looks solid, and we appreciate the 100% code coverage. One more thing: if you look at the build report (pick any python -> flake8 lint), there are A LOT of lint warnings reported in this new module. Those are stylistic issues we'd like to minimize as well.

./dpkt/rtcp.py:47:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:58:5: E301 expected 1 blank line, found 0
./dpkt/rtcp.py:88:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:94:5: E301 expected 1 blank line, found 0
./dpkt/rtcp.py:98:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:115:5: E301 expected 1 blank line, found 0
./dpkt/rtcp.py:172:1: E305 expected 2 blank lines after class or function definition, found 1
./dpkt/rtcp.py:180:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:189:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:198:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:207:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:214:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:218:5: E301 expected 1 blank line, found 0
./dpkt/rtcp.py:221:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:239:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:266:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:304:34: E203 whitespace before ':'
./dpkt/rtcp.py:316:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:322:20: E225 missing whitespace around operator
./dpkt/rtcp.py:333:19: W291 trailing whitespace
./dpkt/rtcp.py:339:32: E225 missing whitespace around operator
./dpkt/rtcp.py:339:36: E261 at least two spaces before inline comment
./dpkt/rtcp.py:343:15: W291 trailing whitespace
./dpkt/rtcp.py:349:17: E261 at least two spaces before inline comment
./dpkt/rtcp.py:350:28: E225 missing whitespace around operator
./dpkt/rtcp.py:353:15: E271 multiple spaces after keyword
./dpkt/rtcp.py:353:19: W291 trailing whitespace
./dpkt/rtcp.py:376:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:401:17: E201 whitespace after '('
./dpkt/rtcp.py:401:50: E202 whitespace before ')'
./dpkt/rtcp.py:406:29: E225 missing whitespace around operator
./dpkt/rtcp.py:407:17: E201 whitespace after '('
./dpkt/rtcp.py:407:43: E202 whitespace before ')'
./dpkt/rtcp.py:414:17: E201 whitespace after '('
./dpkt/rtcp.py:414:50: E202 whitespace before ')'
./dpkt/rtcp.py:420:44: W291 trailing whitespace
./dpkt/rtcp.py:422:13: E201 whitespace after '('
./dpkt/rtcp.py:422:39: E202 whitespace before ')'
./dpkt/rtcp.py:434:44: W291 trailing whitespace
./dpkt/rtcp.py:437:35: W291 trailing whitespace
./dpkt/rtcp.py:444:35: E128 continuation line under-indented for visual indent
./dpkt/rtcp.py:447:11: E271 multiple spaces after keyword
./dpkt/rtcp.py:455:13: E271 multiple spaces after keyword
./dpkt/rtcp.py:464:13: E271 multiple spaces after keyword
./dpkt/rtcp.py:466:59: E202 whitespace before ']'
./dpkt/rtcp.py:467:13: E271 multiple spaces after keyword
./dpkt/rtcp.py:469:59: E202 whitespace before ']'
./dpkt/rtcp.py:470:13: E271 multiple spaces after keyword
./dpkt/rtcp.py:472:59: E202 whitespace before ']'
./dpkt/rtcp.py:473:13: E271 multiple spaces after keyword
./dpkt/rtcp.py:474:36: E261 at least two spaces before inline comment
./dpkt/rtcp.py:476:65: E261 at least two spaces before inline comment
./dpkt/rtcp.py:476:128: E501 line too long ([150](https://github.com/kbandla/dpkt/actions/runs/4018028430/jobs/6903131949#step:7:151) > 127 characters)
./dpkt/rtcp.py:481:35: E128 continuation line under-indented for visual indent
./dpkt/rtcp.py:496:29: E225 missing whitespace around operator
./dpkt/rtcp.py:499:15: E271 multiple spaces after keyword
./dpkt/rtcp.py:500:1: W293 blank line contains whitespace
./dpkt/rtcp.py:501:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:517:49: E202 whitespace before ')'
./dpkt/rtcp.py:521:33: E225 missing whitespace around operator
./dpkt/rtcp.py:522:36: E225 missing whitespace around operator
./dpkt/rtcp.py:523:40: E225 missing whitespace around operator
./dpkt/rtcp.py:524:40: E225 missing whitespace around operator
./dpkt/rtcp.py:525:35: E225 missing whitespace around operator
./dpkt/rtcp.py:526:38: E225 missing whitespace around operator
./dpkt/rtcp.py:527:35: E225 missing whitespace around operator
./dpkt/rtcp.py:528:36: E225 missing whitespace around operator
./dpkt/rtcp.py:529:25: E225 missing whitespace around operator
./dpkt/rtcp.py:537:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:538:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:538:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:539:21: W291 trailing whitespace
./dpkt/rtcp.py:540:16: W291 trailing whitespace
./dpkt/rtcp.py:541:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:541:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:542:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:542:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:543:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:543:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:544:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:544:21: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:545:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:545:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:546:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:546:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:551:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:551:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:560:33: E225 missing whitespace around operator
./dpkt/rtcp.py:568:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:581:33: E225 missing whitespace around operator
./dpkt/rtcp.py:582:36: E225 missing whitespace around operator
./dpkt/rtcp.py:583:40: E225 missing whitespace around operator
./dpkt/rtcp.py:584:40: E225 missing whitespace around operator
./dpkt/rtcp.py:585:35: E225 missing whitespace around operator
./dpkt/rtcp.py:586:38: E225 missing whitespace around operator
./dpkt/rtcp.py:587:35: E225 missing whitespace around operator
./dpkt/rtcp.py:588:36: E225 missing whitespace around operator
./dpkt/rtcp.py:589:25: E225 missing whitespace around operator
./dpkt/rtcp.py:595:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:596:20: E[201](https://github.com/kbandla/dpkt/actions/runs/4018028430/jobs/6903131949#step:7:202) whitespace after '('
./dpkt/rtcp.py:596:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:596:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:596:31: E[202](https://github.com/kbandla/dpkt/actions/runs/4018028430/jobs/6903131949#step:7:203) whitespace before ')'
./dpkt/rtcp.py:597:21: W291 trailing whitespace
./dpkt/rtcp.py:598:16: W291 trailing whitespace
./dpkt/rtcp.py:599:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:599:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:604:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:604:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:613:33: E[225](https://github.com/kbandla/dpkt/actions/runs/4018028430/jobs/6903131949#step:7:226) missing whitespace around operator
./dpkt/rtcp.py:619:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:631:35: E225 missing whitespace around operator
./dpkt/rtcp.py:632:27: E225 missing whitespace around operator
./dpkt/rtcp.py:641:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:643:11: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:643:13: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:644:11: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:644:13: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:644:15: E261 at least two spaces before inline comment
./dpkt/rtcp.py:652:35: E225 missing whitespace around operator
./dpkt/rtcp.py:677:33: E225 missing whitespace around operator
./dpkt/rtcp.py:678:43: E225 missing whitespace around operator
./dpkt/rtcp.py:690:50: E202 whitespace before ')'
./dpkt/rtcp.py:706:50: E202 whitespace before ')'
./dpkt/rtcp.py:707:66: E202 whitespace before ')'
./dpkt/rtcp.py:708:62: E202 whitespace before ')'
./dpkt/rtcp.py:709:62: E202 whitespace before ')'
./dpkt/rtcp.py:710:66: E202 whitespace before ')'
./dpkt/rtcp.py:711:64: E202 whitespace before ')'
./dpkt/rtcp.py:712:67: E202 whitespace before ')'
./dpkt/rtcp.py:713:65: E202 whitespace before ')'
./dpkt/rtcp.py:714:57: E202 whitespace before ')'
./dpkt/rtcp.py:715:68: E202 whitespace before ')'
./dpkt/rtcp.py:716:67: E202 whitespace before ')'
./dpkt/rtcp.py:717:66: E202 whitespace before ')'
./dpkt/rtcp.py:718:59: E202 whitespace before ')'
./dpkt/rtcp.py:719:58: E202 whitespace before ')'
./dpkt/rtcp.py:720:62: E202 whitespace before ')'
./dpkt/rtcp.py:721:66: E202 whitespace before ')'
./dpkt/rtcp.py:722:61: E202 whitespace before ')'
./dpkt/rtcp.py:723:61: E202 whitespace before ')'
./dpkt/rtcp.py:724:65: E202 whitespace before ')'
./dpkt/rtcp.py:725:61: E202 whitespace before ')'
./dpkt/rtcp.py:726:69: E202 whitespace before ')'
./dpkt/rtcp.py:727:65: E202 whitespace before ')'
./dpkt/rtcp.py:728:70: E202 whitespace before ')'
./dpkt/rtcp.py:739:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:740:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:740:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:741:21: W291 trailing whitespace
./dpkt/rtcp.py:742:16: W291 trailing whitespace
./dpkt/rtcp.py:743:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:743:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:748:39: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:748:41: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:748:52: E[231](https://github.com/kbandla/dpkt/actions/runs/4018028430/jobs/6903131949#step:7:232) missing whitespace after ','
./dpkt/rtcp.py:748:63: E[251](https://github.com/kbandla/dpkt/actions/runs/4018028430/jobs/6903131949#step:7:252) unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:748:65: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:749:21: W291 trailing whitespace
./dpkt/rtcp.py:751:33: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:751:35: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:752:21: W291 trailing whitespace
./dpkt/rtcp.py:755:20: W291 trailing whitespace
./dpkt/rtcp.py:756:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:756:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:757:20: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:757:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:758:20: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:758:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:759:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:759:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:760:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:760:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:761:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:761:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:762:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:762:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:763:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:763:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:764:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:764:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:765:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:765:28: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:766:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:766:28: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:767:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:767:29: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:768:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:768:28: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:771:21: W291 trailing whitespace
./dpkt/rtcp.py:774:20: W291 trailing whitespace
./dpkt/rtcp.py:775:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:775:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:776:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:776:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:777:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:777:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:778:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:778:28: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:779:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:779:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:780:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:780:29: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:781:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:781:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:782:16: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:782:18: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:783:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:783:28: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:784:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:784:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:785:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:785:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:786:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:786:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:787:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:787:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:788:20: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:788:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:789:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:789:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:790:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:790:21: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:791:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:791:21: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:792:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:792:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:793:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:793:29: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:794:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:794:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:795:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:795:29: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:798:21: W291 trailing whitespace
./dpkt/rtcp.py:800:33: E225 missing whitespace around operator
./dpkt/rtcp.py:801:43: E225 missing whitespace around operator
./dpkt/rtcp.py:816:11: E[275](https://github.com/kbandla/dpkt/actions/runs/4018028430/jobs/6903131949#step:7:276) missing whitespace after keyword
./dpkt/rtcp.py:818:11: E275 missing whitespace after keyword
./dpkt/rtcp.py:820:11: E275 missing whitespace after keyword
./dpkt/rtcp.py:822:15: E275 missing whitespace after keyword
./dpkt/rtcp.py:822:16: E201 whitespace after '('
./dpkt/rtcp.py:822:55: E202 whitespace before ')'
./dpkt/rtcp.py:827:11: E275 missing whitespace after keyword
./dpkt/rtcp.py:829:11: E275 missing whitespace after keyword
./dpkt/rtcp.py:831:11: E275 missing whitespace after keyword
./dpkt/rtcp.py:833:15: E275 missing whitespace after keyword
./dpkt/rtcp.py:833:16: E201 whitespace after '('
./dpkt/rtcp.py:833:108: E202 whitespace before ')'
./dpkt/rtcp.py:837:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:839:15: E275 missing whitespace after keyword
./dpkt/rtcp.py:843:12: W[291](https://github.com/kbandla/dpkt/actions/runs/4018028430/jobs/6903131949#step:7:292) trailing whitespace
./dpkt/rtcp.py:845:80: W291 trailing whitespace
./dpkt/rtcp.py:847:22: W291 trailing whitespace
./dpkt/rtcp.py:848:11: E275 missing whitespace after keyword
./dpkt/rtcp.py:848:26: E225 missing whitespace around operator
./dpkt/rtcp.py:849:11: E275 missing whitespace after keyword
./dpkt/rtcp.py:851:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:852:22: E201 whitespace after '('
./dpkt/rtcp.py:852:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:852:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:852:35: E202 whitespace before ')'
./dpkt/rtcp.py:854:15: E275 missing whitespace after keyword
./dpkt/rtcp.py:855:31: W291 trailing whitespace
./dpkt/rtcp.py:856:24: W291 trailing whitespace
./dpkt/rtcp.py:857:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:857:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:859:24: E202 whitespace before ')'
./dpkt/rtcp.py:863:21: E201 whitespace after '('
./dpkt/rtcp.py:863:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:863:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:863:33: E202 whitespace before ')'
./dpkt/rtcp.py:866:30: W291 trailing whitespace
./dpkt/rtcp.py:867:24: W291 trailing whitespace
./dpkt/rtcp.py:868:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:868:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:875:21: E201 whitespace after '('
./dpkt/rtcp.py:875:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:875:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:875:33: E202 whitespace before ')'
./dpkt/rtcp.py:877:15: E275 missing whitespace after keyword
./dpkt/rtcp.py:878:30: W291 trailing whitespace
./dpkt/rtcp.py:879:24: W291 trailing whitespace
./dpkt/rtcp.py:880:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:880:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:887:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:887:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:890:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:890:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:899:33: E225 missing whitespace around operator
./dpkt/rtcp.py:900:21: W291 trailing whitespace
./dpkt/rtcp.py:901:16: W291 trailing whitespace
./dpkt/rtcp.py:902:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:902:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:903:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:903:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:904:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:904:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:905:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:905:21: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:906:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:906:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:907:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:907:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:916:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:916:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:919:39: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:919:41: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:919:52: E231 missing whitespace after ','
./dpkt/rtcp.py:919:63: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:919:65: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:920:21: W291 trailing whitespace
./dpkt/rtcp.py:922:33: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:922:35: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:923:21: W291 trailing whitespace
./dpkt/rtcp.py:926:20: W291 trailing whitespace
./dpkt/rtcp.py:927:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:927:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:928:20: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:928:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:929:20: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:929:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:930:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:930:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:931:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:931:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:932:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:932:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:933:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:933:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:934:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:934:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:935:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:935:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:936:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:936:28: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:937:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:937:28: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:938:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:938:29: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:939:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:939:28: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:942:21: W291 trailing whitespace
./dpkt/rtcp.py:945:20: W291 trailing whitespace
./dpkt/rtcp.py:946:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:946:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:947:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:947:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:948:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:948:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:949:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:949:28: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:950:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:950:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:951:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:951:29: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:952:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:952:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:953:16: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:953:18: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:954:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:954:28: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:955:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:955:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:956:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:956:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:957:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:957:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:958:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:958:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:959:20: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:959:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:960:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:960:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:961:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:961:21: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:962:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:962:21: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:963:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:963:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:964:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:964:29: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:965:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:965:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:966:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:966:29: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:969:21: W291 trailing whitespace
./dpkt/rtcp.py:971:33: E225 missing whitespace around operator
./dpkt/rtcp.py:972:43: E225 missing whitespace around operator
./dpkt/rtcp.py:973:21: W291 trailing whitespace
./dpkt/rtcp.py:974:16: W291 trailing whitespace
./dpkt/rtcp.py:975:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:975:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:988:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:989:22: E201 whitespace after '('
./dpkt/rtcp.py:989:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:989:27: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:989:35: E202 whitespace before ')'
./dpkt/rtcp.py:991:15: E275 missing whitespace after keyword
./dpkt/rtcp.py:995:21: E201 whitespace after '('
./dpkt/rtcp.py:995:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:995:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:995:33: E202 whitespace before ')'
./dpkt/rtcp.py:997:15: E275 missing whitespace after keyword
./dpkt/rtcp.py:1001:21: E201 whitespace after '('
./dpkt/rtcp.py:1001:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1001:26: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1001:33: E202 whitespace before ')'
./dpkt/rtcp.py:1003:15: E275 missing whitespace after keyword
./dpkt/rtcp.py:1009:20: E201 whitespace after '('
./dpkt/rtcp.py:1009:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1009:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1009:31: E202 whitespace before ')'
./dpkt/rtcp.py:1011:15: E275 missing whitespace after keyword
./dpkt/rtcp.py:1015:20: E201 whitespace after '('
./dpkt/rtcp.py:1015:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1015:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1015:31: E202 whitespace before ')'
./dpkt/rtcp.py:1017:15: E275 missing whitespace after keyword
./dpkt/rtcp.py:1021:22: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1021:24: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1024:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1024:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1033:33: E225 missing whitespace around operator
./dpkt/rtcp.py:1034:21: W291 trailing whitespace
./dpkt/rtcp.py:1035:16: W291 trailing whitespace
./dpkt/rtcp.py:1036:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1036:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1037:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1037:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1038:23: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1038:25: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1039:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1039:21: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1040:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1040:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1041:17: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1041:19: E251 unexpected spaces around keyword / parameter equals
./dpkt/rtcp.py:1053:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:1055:15: E275 missing whitespace after keyword
./dpkt/rtcp.py:1064:15: E275 missing whitespace after keyword
./dpkt/rtcp.py:1085:34: E225 missing whitespace around operator
./dpkt/rtcp.py:1086:26: E225 missing whitespace around operator
./dpkt/rtcp.py:1105:34: E225 missing whitespace around operator
./dpkt/rtcp.py:1106:26: E225 missing whitespace around operator
./dpkt/rtcp.py:1113:1: E302 expected 2 blank lines, found 1
./dpkt/rtcp.py:1115:15: E275 missing whitespace after keyword
./dpkt/rtcp.py:1115:16: E201 whitespace after '('
./dpkt/rtcp.py:1117:13: W[292](https://github.com/kbandla/dpkt/actions/runs/4018028430/jobs/6903131949#step:7:293) no newline at end of file