Class: PacketGen::Header::SCTP::DataChunk
Overview
Data chunk. This SCTP chunk embeds user data.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0 | Res |I|U|B|E| Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TSN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Stream Identifier S | Stream Sequence Number n |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Protocol Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ User Data (seq n of Stream S) /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Constant Summary
Constants inherited from BaseChunk
Instance Attribute Summary collapse
-
#body ⇒ String
User data.
-
#flag_b ⇒ Integer
BEGINNING fragment flag.
-
#flag_e ⇒ Integer
ENDING fragment flag.
-
#flag_i ⇒ Integer
IMMEDIATE flag.
-
#flag_u ⇒ Integer
UNORDERED flag.
-
#ppid ⇒ Integer
32-bit payload protocol identifier.
-
#stream_id ⇒ Integer
16-bit stream identifier.
-
#stream_sn ⇒ Integer
16-bit stream sequence number.
-
#tsn ⇒ Integer
32-bit Transmission Sequence Number for this DATA chunk.
Attributes inherited from BaseChunk
Method Summary
Methods inherited from BaseChunk
#calc_length, #human_type, #to_human
Methods included from Padded32
Methods inherited from Base
bind, calculate_and_set_length, #header_id, inherited, #initialize, #ip_header, #ll_header
Methods included from PacketGen::Headerable
#added_to_packet, included, #method_name, #packet, #packet=, #parse?, #protocol_name, #read, #to_s
Constructor Details
This class inherits a constructor from PacketGen::Header::Base
Instance Attribute Details
#body ⇒ String
User data
164 |
# File 'lib/packetgen/header/sctp/chunk.rb', line 164 define_attr :body, BinStruct::String, builder: ->(h, t) { t.new(length_from: -> { h.length - 4 }) } |
#flag_b ⇒ Integer
BEGINNING fragment flag. If set, indicate the first fragment of a user message.
179 |
# File 'lib/packetgen/header/sctp/chunk.rb', line 179 define_bit_attr_after :type, :flags, flag_res: 4, flag_i: 1, flag_u: 1, flag_b: 1, flag_e: 1 |
#flag_e ⇒ Integer
ENDING fragment flag. If set, indicate the last fragment of a user message.
179 |
# File 'lib/packetgen/header/sctp/chunk.rb', line 179 define_bit_attr_after :type, :flags, flag_res: 4, flag_i: 1, flag_u: 1, flag_b: 1, flag_e: 1 |
#flag_i ⇒ Integer
IMMEDIATE flag
179 |
# File 'lib/packetgen/header/sctp/chunk.rb', line 179 define_bit_attr_after :type, :flags, flag_res: 4, flag_i: 1, flag_u: 1, flag_b: 1, flag_e: 1 |
#flag_u ⇒ Integer
UNORDERED flag. If set, no Stream Sequence Number is assigned to this chunk.
179 |
# File 'lib/packetgen/header/sctp/chunk.rb', line 179 define_bit_attr_after :type, :flags, flag_res: 4, flag_i: 1, flag_u: 1, flag_b: 1, flag_e: 1 |
#ppid ⇒ Integer
32-bit payload protocol identifier
160 |
# File 'lib/packetgen/header/sctp/chunk.rb', line 160 define_attr :ppid, BinStruct::Int32 |
#stream_id ⇒ Integer
16-bit stream identifier
152 |
# File 'lib/packetgen/header/sctp/chunk.rb', line 152 define_attr :stream_id, BinStruct::Int16 |
#stream_sn ⇒ Integer
16-bit stream sequence number
156 |
# File 'lib/packetgen/header/sctp/chunk.rb', line 156 define_attr :stream_sn, BinStruct::Int16 |
#tsn ⇒ Integer
32-bit Transmission Sequence Number for this DATA chunk
148 |
# File 'lib/packetgen/header/sctp/chunk.rb', line 148 define_attr :tsn, BinStruct::Int32 |