Amazon Kinesis Webrtc C SDK
 
Loading...
Searching...
No Matches
Sctp.h
Go to the documentation of this file.
1//
2// Sctp
3//
4
5#ifndef __KINESIS_VIDEO_WEBRTC_CLIENT_SCTP_SCTP__
6#define __KINESIS_VIDEO_WEBRTC_CLIENT_SCTP_SCTP__
7
8#pragma once
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14// 1200 - 12 (SCTP header Size)
15#define SCTP_MTU 1188
16#define SCTP_ASSOCIATION_DEFAULT_PORT 5000
17#define SCTP_DCEP_HEADER_LENGTH 12
18#define SCTP_DCEP_LABEL_LEN_OFFSET 8
19#define SCTP_DCEP_LABEL_OFFSET 12
20#define SCTP_MAX_ALLOWABLE_PACKET_LENGTH (SCTP_DCEP_HEADER_LENGTH + MAX_DATA_CHANNEL_NAME_LEN + MAX_DATA_CHANNEL_PROTOCOL_LEN + 2)
21
22#define SCTP_SESSION_ACTIVE 0
23#define SCTP_SESSION_SHUTDOWN_INITIATED 1
24#define SCTP_SESSION_SHUTDOWN_COMPLETED 2
25
26#define DEFAULT_SCTP_SHUTDOWN_TIMEOUT 2 * HUNDREDS_OF_NANOS_IN_A_SECOND
27
28#define DEFAULT_USRSCTP_TEARDOWN_POLLING_INTERVAL (10 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND)
29
31
32enum {
35};
36
43
44// Callback that is fired when SCTP Association wishes to send packet
46
47// Callback that is fired when SCTP has a new DataChannel
48// Argument is ChannelID and ChannelName + Len
50
51// Callback that is fired when SCTP has a DataChannel Message.
52// Argument is ChannelID and Message + Len
54
61
70
78
79// Callbacks used by usrsctp
82
83#ifdef __cplusplus
84}
85#endif
86#endif //__KINESIS_VIDEO_WEBRTC_CLIENT_SCTP_SCTP__
@ SCTP_PPID_STRING
Definition Sctp.h:30
@ SCTP_PPID_BINARY
Definition Sctp.h:30
@ SCTP_PPID_DCEP
Definition Sctp.h:30
@ SCTP_PPID_STRING_EMPTY
Definition Sctp.h:30
@ SCTP_PPID_BINARY_EMPTY
Definition Sctp.h:30
STATUS freeSctpSession(PSctpSession *)
Definition Sctp.c:129
STATUS createSctpSession(PSctpSessionCallbacks, PSctpSession *)
Definition Sctp.c:78
VOID(* SctpSessionDataChannelMessageFunc)(UINT64, UINT32, BOOL, PBYTE, UINT32)
Definition Sctp.h:53
STATUS sctpSessionWriteDcep(PSctpSession, UINT32, PCHAR, UINT32, PRtcDataChannelInit)
Definition Sctp.c:219
VOID(* SctpSessionOutboundPacketFunc)(UINT64, PBYTE, UINT32)
Definition Sctp.h:45
#define SCTP_MAX_ALLOWABLE_PACKET_LENGTH
Definition Sctp.h:20
INT32 onSctpInboundPacket(struct socket *, union sctp_sockstore, PVOID, ULONG, struct sctp_rcvinfo, INT32, PVOID)
Definition Sctp.c:351
VOID deinitSctpSession()
Definition Sctp.c:70
struct SctpSession * PSctpSession
INT32 onSctpOutboundPacket(PVOID, PVOID, ULONG, UINT8, UINT8)
Definition Sctp.c:272
STATUS putSctpPacket(PSctpSession, PBYTE, UINT32)
Definition Sctp.c:292
STATUS sctpSessionWriteMessage(PSctpSession, UINT32, BOOL, PBYTE, UINT32)
Definition Sctp.c:168
VOID(* SctpSessionDataChannelOpenFunc)(UINT64, UINT32, PBYTE, UINT32)
Definition Sctp.h:49
DATA_CHANNEL_TYPE
Definition Sctp.h:37
@ DCEP_DATA_CHANNEL_TIMED
Definition Sctp.h:41
@ DCEP_DATA_CHANNEL_RELIABLE_UNORDERED
Definition Sctp.h:39
@ DCEP_DATA_CHANNEL_RELIABLE_ORDERED
Definition Sctp.h:38
@ DCEP_DATA_CHANNEL_REXMIT
Definition Sctp.h:40
STATUS initSctpSession()
Definition Sctp.c:58
@ DCEP_DATA_CHANNEL_OPEN
Definition Sctp.h:33
@ DCEP_DATA_CHANNEL_ACK
Definition Sctp.h:34
struct SctpSessionCallbacks * PSctpSessionCallbacks
@ RTC_RTP_TRANSCEIVER_DIRECTION_UNINITIALIZED
Will use the default "sendrecv" after initialization.
Definition Include.h:1037
RtcDataChannelInit dictionary used to configure properties of the underlying channel such as data rel...
Definition Include.h:1690
Definition Sctp.h:55
SctpSessionDataChannelOpenFunc dataChannelOpenFunc
Definition Sctp.h:58
SctpSessionOutboundPacketFunc outboundPacketFunc
Definition Sctp.h:57
UINT64 customData
Definition Sctp.h:56
SctpSessionDataChannelMessageFunc dataChannelMessageFunc
Definition Sctp.h:59
Definition Sctp.h:62
UINT32 packetSize
Definition Sctp.h:67
struct socket * socket
Definition Sctp.h:64
SctpSessionCallbacks sctpSessionCallbacks
Definition Sctp.h:68
volatile SIZE_T shutdownStatus
Definition Sctp.h:63