@@ -404,20 +404,8 @@ class SCTPChunkParamAddIPAddr(_SCTPChunkParam, Packet):
404404 lambda p : p .addr_type == 6 ), ]
405405
406406
407- class SCTPChunkParamDelIPAddr (_SCTPChunkParam , Packet ):
408- fields_desc = [ShortEnumField ("type" , 0xc002 , sctpchunkparamtypes ),
409- FieldLenField ("len" , None , length_of = "addr" ,
410- adjust = lambda pkt , x :x + 12 ),
411- XIntField ("correlation_id" , None ),
412- ShortEnumField ("addr_type" , 5 , sctpchunkparamtypes ),
413- FieldLenField ("addr_len" , None , length_of = "addr" ,
414- adjust = lambda pkt , x :x + 4 ),
415- ConditionalField (
416- IPField ("addr" , "127.0.0.1" ),
417- lambda p : p .addr_type == 5 ),
418- ConditionalField (
419- IP6Field ("addr" , "::1" ),
420- lambda p : p .addr_type == 6 ), ]
407+ class SCTPChunkParamDelIPAddr (SCTPChunkParamAddIPAddr ):
408+ type = 0xc002
421409
422410
423411class SCTPChunkParamErrorIndication (_SCTPChunkParam , Packet ):
@@ -430,20 +418,8 @@ class SCTPChunkParamErrorIndication(_SCTPChunkParam, Packet):
430418 4 , padwith = b"\x00 " ), ]
431419
432420
433- class SCTPChunkParamSetPrimaryAddr (_SCTPChunkParam , Packet ):
434- fields_desc = [ShortEnumField ("type" , 0xc004 , sctpchunkparamtypes ),
435- FieldLenField ("len" , None , length_of = "addr" ,
436- adjust = lambda pkt , x :x + 12 ),
437- XIntField ("correlation_id" , None ),
438- ShortEnumField ("addr_type" , 5 , sctpchunkparamtypes ),
439- FieldLenField ("addr_len" , None , length_of = "addr" ,
440- adjust = lambda pkt , x :x + 4 ),
441- ConditionalField (
442- IPField ("addr" , "127.0.0.1" ),
443- lambda p : p .addr_type == 5 ),
444- ConditionalField (
445- IP6Field ("addr" , "::1" ),
446- lambda p : p .addr_type == 6 ), ]
421+ class SCTPChunkParamSetPrimaryAddr (SCTPChunkParamAddIPAddr ):
422+ type = 0xc004
447423
448424
449425class SCTPChunkParamSuccessIndication (_SCTPChunkParam , Packet ):
@@ -554,17 +530,8 @@ class SCTPChunkInit(_SCTPChunkGuessPayload, Packet):
554530 ]
555531
556532
557- class SCTPChunkInitAck (_SCTPChunkGuessPayload , Packet ):
558- fields_desc = [ByteEnumField ("type" , 2 , sctpchunktypes ),
559- XByteField ("flags" , None ),
560- FieldLenField ("len" , None , length_of = "params" , adjust = lambda pkt , x :x + 20 ), # noqa: E501
561- XIntField ("init_tag" , None ),
562- IntField ("a_rwnd" , None ),
563- ShortField ("n_out_streams" , None ),
564- ShortField ("n_in_streams" , None ),
565- XIntField ("init_tsn" , None ),
566- ChunkParamField ("params" , None , length_from = lambda pkt :pkt .len - 20 ), # noqa: E501
567- ]
533+ class SCTPChunkInitAck (SCTPChunkInit ):
534+ type = 2
568535
569536
570537class GapAckField (Field ):
@@ -613,12 +580,8 @@ class SCTPChunkHeartbeatReq(_SCTPChunkGuessPayload, Packet):
613580 ]
614581
615582
616- class SCTPChunkHeartbeatAck (_SCTPChunkGuessPayload , Packet ):
617- fields_desc = [ByteEnumField ("type" , 5 , sctpchunktypes ),
618- XByteField ("flags" , None ),
619- FieldLenField ("len" , None , length_of = "params" , adjust = lambda pkt , x :x + 4 ), # noqa: E501
620- ChunkParamField ("params" , None , length_from = lambda pkt :pkt .len - 4 ), # noqa: E501
621- ]
583+ class SCTPChunkHeartbeatAck (SCTPChunkHeartbeatReq ):
584+ type = 5
622585
623586
624587class SCTPChunkAbort (_SCTPChunkGuessPayload , Packet ):
@@ -655,7 +618,7 @@ class SCTPChunkError(_SCTPChunkGuessPayload, Packet):
655618 ]
656619
657620
658- class SCTPChunkCookieEcho (_SCTPChunkGuessPayload , Packet ):
621+ class SCTPChunkCookieEcho (SCTPChunkError ):
659622 fields_desc = [ByteEnumField ("type" , 10 , sctpchunktypes ),
660623 XByteField ("flags" , None ),
661624 FieldLenField ("len" , None , length_of = "cookie" , adjust = lambda pkt , x :x + 4 ), # noqa: E501
@@ -701,14 +664,8 @@ class SCTPChunkAddressConf(_SCTPChunkGuessPayload, Packet):
701664 ]
702665
703666
704- class SCTPChunkAddressConfAck (_SCTPChunkGuessPayload , Packet ):
705- fields_desc = [ByteEnumField ("type" , 0x80 , sctpchunktypes ),
706- XByteField ("flags" , None ),
707- FieldLenField ("len" , None , length_of = "params" ,
708- adjust = lambda pkt , x :x + 8 ),
709- IntField ("seq" , 0 ),
710- ChunkParamField ("params" , None , length_from = lambda pkt :pkt .len - 8 ), # noqa: E501
711- ]
667+ class SCTPChunkAddressConfAck (SCTPChunkAddressConf ):
668+ type = 0x80
712669
713670
714671bind_layers (IP , SCTP , proto = IPPROTO_SCTP )
0 commit comments