scapy.contrib.automotive.someip

class scapy.contrib.automotive.someip.SD(*args, **kargs)

Bases: scapy.contrib.automotive.someip._SDPacketBase

SD Packet

NOTEwhen adding ‘entries’ or ‘options’, do not use list.append()

method but create a new list

e.g.p = SD()

p.option_array = [SDOption_Config(),SDOption_IP6_EndPoint()]

FLAGSDEF = {'REBOOT': Flag(mask=128, offset=7), 'UNICAST': Flag(mask=64, offset=6)}
SOMEIP_CLIENT_ID = 0
SOMEIP_IFACE_VER = 1
SOMEIP_MINIMUM_SESSION_ID = 1
SOMEIP_MSGID_EVENTID = 256
SOMEIP_MSGID_SRVID = 65535
SOMEIP_MSGID_SUBID = 1
SOMEIP_MSG_TYPE = 2
SOMEIP_PROTO_VER = 1
SOMEIP_RETCODE = 0
aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     FLAGS     |                      RES                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |                LEN ENTRY ARRAY                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |          ENTRY ARRAY          |LEN OPTION ARRA|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|                                               |  OPTION ARRAY |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                             Fig. SD                              
SD fields

flags

XByteField

0

res

X3BytesField

0

len_entry_array

FieldLenField

None

entry_array

PacketListField

[]

len_option_array

FieldLenField

None

option_array

PacketListField

[]

get_flag(name)
set_entryArray(entry_list)
set_flag(name, value)
set_optionArray(option_list)
class scapy.contrib.automotive.someip.SDEntry_EventGroup(*args, **kargs)

Bases: scapy.contrib.automotive.someip._SDPacketBase

aliastypes
fields_desc
Display RFC-like schema
 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     |    INDEX 1    |    INDEX 2    |N OPT 1|N OPT 2|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             SRV ID            |            INST ID            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   MAJOR VER   |                      TTL                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |          RES          |  CNT  | EVENTGROUP ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                     Fig. SDEntry_EventGroup                      
SDEntry_EventGroup fields

type

XByteField

6

index_1

XByteField

0

index_2

XByteField

0

n_opt_1

XBitField (4 bits)

0

n_opt_2

XBitField (4 bits)

0

srv_id

XShortField

0

inst_id

XShortField

0

major_ver

XByteField

0

ttl

X3BytesField

0

res

XBitField (12 bits)

0

cnt

XBitField (4 bits)

0

eventgroup_id

XShortField

0

class scapy.contrib.automotive.someip.SDEntry_Service(*args, **kargs)

Bases: scapy.contrib.automotive.someip._SDPacketBase

aliastypes
fields_desc
Display RFC-like schema
 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     |    INDEX 1    |    INDEX 2    |N OPT 1|N OPT 2|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             SRV ID            |            INST ID            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   MAJOR VER   |                      TTL                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |                   MINOR VER                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                       Fig. SDEntry_Service                       
SDEntry_Service fields

type

XByteField

0

index_1

XByteField

0

index_2

XByteField

0

n_opt_1

XBitField (4 bits)

0

n_opt_2

XBitField (4 bits)

0

srv_id

XShortField

0

inst_id

XShortField

0

major_ver

XByteField

0

ttl

X3BytesField

0

minor_ver

XIntField

0

class scapy.contrib.automotive.someip.SDOption_Config(*args, **kargs)

Bases: scapy.contrib.automotive.someip._SDPacketBase

aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LEN              |      TYPE     |    RES HDR    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            CFG STR            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. SDOption_Config                       
SDOption_Config fields

len

ShortField

None

type

XByteField

1

res_hdr

XByteField

0

cfg_str

StrLenField

b'\x00'

static make_string(data)
post_build(pkt, pay)
class scapy.contrib.automotive.someip.SDOption_IP4_EndPoint(*args, **kargs)

Bases: scapy.contrib.automotive.someip._SDPacketBase

aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LEN              |      TYPE     |    RES HDR    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ADDR                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RES TAIL   |    L4 PROTO   |              PORT             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. SDOption_IP4_EndPoint                    
SDOption_IP4_EndPoint fields

len

ShortField

9

type

XByteField

4

res_hdr

XByteField

0

addr

IPField

'0.0.0.0'

res_tail

XByteField

0

l4_proto

ByteEnumField

17

port

ShortField

0

class scapy.contrib.automotive.someip.SDOption_IP4_Multicast(*args, **kargs)

Bases: scapy.contrib.automotive.someip._SDPacketBase

aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LEN              |      TYPE     |    RES HDR    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ADDR                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RES TAIL   |    L4 PROTO   |              PORT             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. SDOption_IP4_Multicast                    
SDOption_IP4_Multicast fields

len

ShortField

9

type

XByteField

20

res_hdr

XByteField

0

addr

IPField

'0.0.0.0'

res_tail

XByteField

0

l4_proto

ByteEnumField

17

port

ShortField

0

class scapy.contrib.automotive.someip.SDOption_IP4_SD_EndPoint(*args, **kargs)

Bases: scapy.contrib.automotive.someip._SDPacketBase

aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LEN              |      TYPE     |    RES HDR    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ADDR                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RES TAIL   |    L4 PROTO   |              PORT             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Fig. SDOption_IP4_SD_EndPoint                   
SDOption_IP4_SD_EndPoint fields

len

ShortField

9

type

XByteField

36

res_hdr

XByteField

0

addr

IPField

'0.0.0.0'

res_tail

XByteField

0

l4_proto

ByteEnumField

17

port

ShortField

0

class scapy.contrib.automotive.someip.SDOption_IP6_EndPoint(*args, **kargs)

Bases: scapy.contrib.automotive.someip._SDPacketBase

aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LEN              |      TYPE     |    RES HDR    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ADDR                             |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RES TAIL   |    L4 PROTO   |              PORT             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. SDOption_IP6_EndPoint                    
SDOption_IP6_EndPoint fields

len

ShortField

21

type

XByteField

6

res_hdr

XByteField

0

addr

IP6Field

'::'

res_tail

XByteField

0

l4_proto

ByteEnumField

17

port

ShortField

0

class scapy.contrib.automotive.someip.SDOption_IP6_Multicast(*args, **kargs)

Bases: scapy.contrib.automotive.someip._SDPacketBase

aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LEN              |      TYPE     |    RES HDR    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ADDR                             |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RES TAIL   |    L4 PROTO   |              PORT             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. SDOption_IP6_Multicast                    
SDOption_IP6_Multicast fields

len

ShortField

21

type

XByteField

22

res_hdr

XByteField

0

addr

IP6Field

'::'

res_tail

XByteField

0

l4_proto

ByteEnumField

17

port

ShortField

0

class scapy.contrib.automotive.someip.SDOption_IP6_SD_EndPoint(*args, **kargs)

Bases: scapy.contrib.automotive.someip._SDPacketBase

aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LEN              |      TYPE     |    RES HDR    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ADDR                             |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RES TAIL   |    L4 PROTO   |              PORT             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Fig. SDOption_IP6_SD_EndPoint                   
SDOption_IP6_SD_EndPoint fields

len

ShortField

21

type

XByteField

38

res_hdr

XByteField

0

addr

IP6Field

'::'

res_tail

XByteField

0

l4_proto

ByteEnumField

17

port

ShortField

0

class scapy.contrib.automotive.someip.SDOption_LoadBalance(*args, **kargs)

Bases: scapy.contrib.automotive.someip._SDPacketBase

aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LEN              |      TYPE     |    RES HDR    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            PRIORITY           |             WEIGHT            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. SDOption_LoadBalance                     
SDOption_LoadBalance fields

len

ShortField

5

type

XByteField

2

res_hdr

XByteField

0

priority

ShortField

0

weight

ShortField

0

class scapy.contrib.automotive.someip.SOMEIP(*args, **kargs)

Bases: scapy.packet.Packet

SOME/IP Packet.

INTERFACE_VERSION = 1
LEN_OFFSET = 8
LEN_OFFSET_TP = 12
PROTOCOL_VERSION = 1
RET_E_MALFORMED_MSG = 9
RET_E_NOT_OK = 1
RET_E_NOT_REACHABLE = 5
RET_E_NOT_READY = 4
RET_E_OK = 0
RET_E_TIMEOUT = 6
RET_E_UNKNOWN_METHOD = 3
RET_E_UNKNOWN_SERVICE = 2
RET_E_WRONG_INTERFACE_V = 8
RET_E_WRONG_MESSAGE_TYPE = 10
RET_E_WRONG_PROTOCOL_V = 7
TYPE_ERROR = 129
TYPE_ERROR_ACK = 193
TYPE_NOTIFICATION = 2
TYPE_NOTIFICATION_ACK = 66
TYPE_REQUEST = 0
TYPE_REQUEST_ACK = 64
TYPE_REQUEST_NORET_ACK = 65
TYPE_REQUEST_NO_RET = 1
TYPE_RESPONSE = 128
TYPE_RESPONSE_ACK = 192
TYPE_TP_ERROR = 36
TYPE_TP_NOTIFICATION = 34
TYPE_TP_REQUEST = 32
TYPE_TP_REQUEST_NO_RET = 33
TYPE_TP_RESPONSE = 35
aliastypes
answers(other)
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             SRV ID            |S|          METHOD ID          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           EVENT ID          |               LEN               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             |           CLIENT ID           |S|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             |   PROTO VER   |   IFACE VER   |M|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             |    RETCODE    |              OFFSET             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     | RES |M|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. SOMEIP                            
SOMEIP fields

srv_id

XShortField

0

sub_id

BitEnumField (1 bit)

0

method_id

XBitField (Cond) (15 bits)

0

event_id

XBitField (Cond) (15 bits)

0

len

IntField

None

client_id

XShortField

0

session_id

XShortField

0

proto_ver

XByteField

1

iface_ver

XByteField

1

msg_type

ByteEnumField

0

retcode

ByteEnumField

0

offset

BitField (Cond) (28 bits)

0

res

BitField (Cond) (3 bits)

0

more_seg

BitField (Cond) (1 bit)

0

fragment(fragsize=1392)

Fragment SOME/IP-TP

payload_guess

Possible sublayers: SD

post_build(pkt, pay)