twisted / twisted/twisted

Support for UDP-Lite

Open
#2,437 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

core enhancement new priority-low
Dominant language
Python
Stars
6k
Forks
1.2k
Avg merge
2d 10h
Merged PRs (30d)
10

Description

derfel's avatar derfel reported
Trac ID trac#2437
Type enhancement
Created 2007-02-06 02:00:01Z

This patch adds support for Lightweight User Datagram Protocol (UDP-Lite) (as per RFC 3828) which is similar to the User Datagram Protocol, but can also serve applications in error-prone network environments that prefer to have partially damaged payloads delivered rather than discarded.

This could be help audio/video to use the "good" part of the packet and discard damaged one instead of lost the entire packet.

This patch:

  • modify BasePort class adding socketProtocol=0 to be used inside createInternetSocket() during socket creation. Value of 0 select default protocol, but this let us ovveride default protocol.

  • add listenUDPLite() to PosixReactorBase class to create socket for UDP Lite and set checksum coverage to only the first 8 byte.

I have kept this patch as small as possible.

Attachments:

  • udplite.diff (1772 bytes) - added by derfel on 2007-02-06 02:00:50Z - udplite support
  • twisted-udplite.diff (28873 bytes) - added by derfel on 2007-02-09 19:42:25Z - Updated support for UDPLite with test suite from UDP
Searchable metadata
trac-id__2437 2437
type__enhancement enhancement
reporter__derfel derfel
priority__low low
milestone__ 
branch__ 
branch_author__ 
status__new new
resolution__None None
component__core core
keywords__udplite udplite
time__1170727201000000 1170727201000000
changetime__1266610846000000 1266610846000000
version__None None
owner__derfel derfel
cc__spiv cc__jesstess cc__thijs

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the attached udplite.diff and twisted-udplite.diff, then locate BasePort, createInternetSocket(), and PosixReactorBase. Compare the proposed UDP-Lite test suite with the existing UDP tests. Done means UDP-Lite sockets can be created and listened on with the requested checksum coverage, with corresponding tests passing.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.