Stacked/multiple messages at SCTP port

Issues related to configuring your network
Post Reply
skeeterx21
Posts: 2
Joined: 2014/01/16 17:17:08

Stacked/multiple messages at SCTP port

Post by skeeterx21 » 2014/01/16 17:30:08

I have established connectivity via an sctp port to a remote server. The remote server sometimes sends multiple messages in the same frame. I am unable, however, to read both messages. The number of bytes returned by the sctp_recvmsg command only tells me how many bytes are in the second message, for example, I receive a message for an M3UA ASPAC ACK with a message for an M3UA NTFY ASPUP stacked on top of it, or in addition to it. The number of bytes returned by sctp_recvmsg is the number of bytes for the M3UA NTFY ASPUP message and I miss the first message (ASPAC ACK) entirely.
I can't find anything in the lksctp documentation that addresses this. How do I read both messages?

Below is an example from tshark:

Frame 10 (126 bytes on wire, 126 bytes captured)
Arrival Time: Jan 17, 2014 00:24:43.794450000
[Time delta from previous captured frame: 0.069959000 seconds]
[Time delta from previous displayed frame: 0.069959000 seconds]
[Time since reference or first frame: 1.204960000 seconds]
Frame Number: 10
Frame Length: 126 bytes
Capture Length: 126 bytes
[Frame is marked: False]
[Protocols in frame: eth:ip:sctp:m3ua:m3ua]
Ethernet II, Src: 21:00:82:24:c8:23 (21:00:82:24:c8:23), Dst: SuperMic_22:4c:1a (00:25:90:22:4c:1a)
Destination: SuperMic_22:4c:1a (00:25:90:22:4c:1a)
Address: SuperMic_22:4c:1a (00:25:90:22:4c:1a)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source: 21:00:82:24:c8:23 (21:00:82:24:c8:23)
Address: 21:00:82:24:c8:23 (21:00:82:24:c8:23)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: IP (0x0800)
Internet Protocol, Src: 21.195.16.39 (21.195.16.39), Dst: 192.168.1.83 (192.168.1.83)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x92 (DSCP 0x24: Assured Forwarding 42; ECN: 0x02)
1001 00.. = Differentiated Services Codepoint: Assured Forwarding 42 (0x24)
.... ..1. = ECN-Capable Transport (ECT): 1
.... ...0 = ECN-CE: 0
Total Length: 112
Identification: 0x79a1 (31137)
Flags: 0x04 (Don't Fragment)
0... = Reserved bit: Not set
.1.. = Don't fragment: Set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 62
Protocol: SCTP (0x84)
Header checksum: 0x9002 [correct]
[Good: True]
[Bad : False]
Source: 21.195.16.39 (21.195.16.39)
Destination: 192.168.1.83 (192.168.1.83)
Stream Control Transmission Protocol, Src Port: 2906 (2906), Dst Port: m3ua (2905)
Source port: 2906
Destination port: 2905
Verification tag: 0x222e47ab
Checksum: 0xc28581d4 [correct CRC32C]
SACK chunk (Cumulative TSN: 393407405, a_rwnd: 192000, gaps: 0, duplicate TSNs: 0)
Chunk type: SACK (3)
0... .... = Bit: Stop processing of the packet
.0.. .... = Bit: Do not report
Chunk flags: 0x01
.... ...1 = Nounce sum: 1
Chunk length: 16
Cumulative TSN ACK: 393407405
Advertised receiver window credit (a_rwnd): 192000
Number of gap acknowledgement blocks: 0
Number of duplicated TSNs: 0
DATA chunk(ordered, complete segment, TSN: 1921600425, SID: 0, SSN: 2, PPID: 3, payload length: 8 bytes)
Chunk type: DATA (0)
0... .... = Bit: Stop processing of the packet
.0.. .... = Bit: Do not report
Chunk flags: 0x03
.... ...1 = E-Bit: Last segment
.... ..1. = B-Bit: First segment
.... .0.. = U-Bit: Ordered deliviery
Chunk length: 24
TSN: 1921600425
Stream Identifier: 0x0000
Stream sequence number: 2
Payload protocol identifier: M3UA (3)
MTP 3 User Adaptation Layer
Version: Release 1 (1)
Reserved: 0x00
Message class: ASP traffic maintenance messages (4)
Message type: ASP active ack (ASPAC_ACK) (3)
Message length: 8
Stream Control Transmission Protocol
DATA chunk(ordered, complete segment, TSN: 1921600426, SID: 0, SSN: 3, PPID: 3, payload length: 24 bytes)
Chunk type: DATA (0)
0... .... = Bit: Stop processing of the packet
.0.. .... = Bit: Do not report
Chunk flags: 0x03
.... ...1 = E-Bit: Last segment
.... ..1. = B-Bit: First segment
.... .0.. = U-Bit: Ordered deliviery
Chunk length: 40
TSN: 1921600426
Stream Identifier: 0x0000
Stream sequence number: 3
Payload protocol identifier: M3UA (3)
MTP 3 User Adaptation Layer
Version: Release 1 (1)
Reserved: 0x00
Message class: Management messages (0)
Message type: Notify (NTFY) (1)
Message length: 24
Status (Application server active)
Parameter Tag: Status (13)
Parameter length: 8
Status type: Application server state change (1)
Status info: Application server active (3)
Routing context (1 context)
Parameter Tag: Routing context (6)
Parameter length: 8
Routing context: 1

skeeterx21
Posts: 2
Joined: 2014/01/16 17:17:08

Re: Stacked/multiple messages at SCTP port

Post by skeeterx21 » 2015/07/27 22:28:27

Does anyone have any idea of stacked messages are supported by lksctp in CentOS 5? Still looking for an answer.

aks
Posts: 3073
Joined: 2014/09/20 11:22:14

Re: Stacked/multiple messages at SCTP port

Post by aks » 2015/07/28 18:04:55

You'd be better off asking on the lksctp forum. Look at http://lksctp.sourceforge.net/
(sourceforge - shudder).

Post Reply