Documentation ¶
Index ¶
- Constants
- type Association
- type Config
- type PayloadProtocolIdentifier
- type Stream
- func (s *Stream) BufferedAmount() uint64
- func (s *Stream) BufferedAmountLowThreshold() uint64
- func (s *Stream) Close() error
- func (s *Stream) OnBufferedAmountLow(f func())
- func (s *Stream) Read(p []byte) (int, error)
- func (s *Stream) ReadSCTP(p []byte) (int, PayloadProtocolIdentifier, error)
- func (s *Stream) SetBufferedAmountLowThreshold(th uint64)
- func (s *Stream) SetDefaultPayloadType(defaultPayloadType PayloadProtocolIdentifier)
- func (s *Stream) SetReliabilityParams(unordered bool, relType byte, relVal uint32)
- func (s *Stream) StreamIdentifier() uint16
- func (s *Stream) Write(p []byte) (n int, err error)
- func (s *Stream) WriteSCTP(p []byte, ppi PayloadProtocolIdentifier) (n int, err error)
Constants ¶
const ( // ReliabilityTypeReliable is used for reliable transmission ReliabilityTypeReliable byte = 0 // ReliabilityTypeRexmit is used for partial reliability by retransmission count ReliabilityTypeRexmit byte = 1 // ReliabilityTypeTimed is used for partial reliability by retransmission duration ReliabilityTypeTimed byte = 2 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Association ¶
type Association struct {
// contains filtered or unexported fields
}
Association represents an SCTP association 13.2. Parameters Necessary per Association (i.e., the TCB) Peer : Tag value to be sent in every packet and is received Verification: in the INIT or INIT ACK chunk. Tag :
My : Tag expected in every inbound packet and sent in the Verification: INIT or INIT ACK chunk.
Tag : State : A state variable indicating what state the association
: is in, i.e., COOKIE-WAIT, COOKIE-ECHOED, ESTABLISHED, : SHUTDOWN-PENDING, SHUTDOWN-SENT, SHUTDOWN-RECEIVED, : SHUTDOWN-ACK-SENT. Note: No "CLOSED" state is illustrated since if a association is "CLOSED" its TCB SHOULD be removed.
func Client ¶
func Client(config Config) (*Association, error)
Client opens a SCTP stream over a conn
func Server ¶
func Server(config Config) (*Association, error)
Server accepts a SCTP stream over a conn
func (*Association) AcceptStream ¶
func (a *Association) AcceptStream() (*Stream, error)
AcceptStream accepts a stream
func (*Association) Close ¶
func (a *Association) Close() error
Close ends the SCTP Association and cleans up any state
func (*Association) OpenStream ¶
func (a *Association) OpenStream(streamIdentifier uint16, defaultPayloadType PayloadProtocolIdentifier) (*Stream, error)
OpenStream opens a stream
type Config ¶ added in v1.5.0
type Config struct { NetConn net.Conn LoggerFactory logging.LoggerFactory }
Config collects the arguments to createAssociation construction into a single structure
type PayloadProtocolIdentifier ¶
type PayloadProtocolIdentifier uint32
PayloadProtocolIdentifier is an enum for DataChannel payload types
const ( PayloadTypeWebRTCDCEP PayloadProtocolIdentifier = 50 PayloadTypeWebRTCString PayloadProtocolIdentifier = 51 PayloadTypeWebRTCBinary PayloadProtocolIdentifier = 53 PayloadTypeWebRTCStringEmpty PayloadProtocolIdentifier = 56 PayloadTypeWebRTCBinaryEmpty PayloadProtocolIdentifier = 57 )
PayloadProtocolIdentifier enums https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-25
func (PayloadProtocolIdentifier) String ¶
func (p PayloadProtocolIdentifier) String() string
type Stream ¶
type Stream struct {
// contains filtered or unexported fields
}
Stream represents an SCTP stream
func (*Stream) BufferedAmount ¶ added in v1.5.0
BufferedAmount returns the number of bytes of data currently queued to be sent over this stream.
func (*Stream) BufferedAmountLowThreshold ¶ added in v1.5.0
BufferedAmountLowThreshold returns the number of bytes of buffered outgoing data that is considered "low." Defaults to 0.
func (*Stream) Close ¶
Close closes the write-direction of the stream. Future calls to Write are not permitted after calling Close.
func (*Stream) OnBufferedAmountLow ¶ added in v1.5.0
func (s *Stream) OnBufferedAmountLow(f func())
OnBufferedAmountLow sets the callback handler which would be called when the number of bytes of outgoing data buffered is lower than the threshold.
func (*Stream) Read ¶
Read reads a packet of len(p) bytes, dropping the Payload Protocol Identifier. Returns EOF when the stream is reset or an error if the stream is closed otherwise.
func (*Stream) ReadSCTP ¶
func (s *Stream) ReadSCTP(p []byte) (int, PayloadProtocolIdentifier, error)
ReadSCTP reads a packet of len(p) bytes and returns the associated Payload Protocol Identifier. Returns EOF when the stream is reset or an error if the stream is closed otherwise.
func (*Stream) SetBufferedAmountLowThreshold ¶ added in v1.5.0
SetBufferedAmountLowThreshold is used to update the threshold. See BufferedAmountLowThreshold().
func (*Stream) SetDefaultPayloadType ¶
func (s *Stream) SetDefaultPayloadType(defaultPayloadType PayloadProtocolIdentifier)
SetDefaultPayloadType sets the default payload type used by Write.
func (*Stream) SetReliabilityParams ¶
SetReliabilityParams sets reliability parameters for this stream.
func (*Stream) StreamIdentifier ¶
StreamIdentifier returns the Stream identifier associated to the stream.
Source Files ¶
- association.go
- chunk.go
- chunk_abort.go
- chunk_cookie_ack.go
- chunk_cookie_echo.go
- chunk_error.go
- chunk_forward_tsn.go
- chunk_heartbeat.go
- chunk_heartbeat_ack.go
- chunk_init.go
- chunk_init_ack.go
- chunk_init_common.go
- chunk_payload_data.go
- chunk_reconfig.go
- chunk_selective_ack.go
- chunkheader.go
- chunktype.go
- error_cause.go
- error_cause_header.go
- error_cause_invalid_mandatory_parameter.go
- error_cause_protocol_violation.go
- error_cause_unrecognized_chunk_type.go
- packet.go
- param.go
- param_chunk_list.go
- param_forward_tsn_supported.go
- param_heartbeat_info.go
- param_outgoing_reset_request.go
- param_random.go
- param_reconfig_response.go
- param_requested_hmac_algorithm.go
- param_state_cookie.go
- param_supported_extensions.go
- paramheader.go
- paramtype.go
- payload_queue.go
- pending_queue.go
- reassembly_queue.go
- rtx_timer.go
- sctp.go
- stream.go
- util.go