os_ken.lib.packet.arp.
arp
(hwtype=1, proto=2048, hlen=6, plen=4, opcode=1, src_mac='ff:ff:ff:ff:ff:ff', src_ip='0.0.0.0', dst_mac='ff:ff:ff:ff:ff:ff', dst_ip='0.0.0.0')¶ARP (RFC 826) header encoder/decoder class.
An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. IPv4 addresses are represented as a string like '192.0.2.1'. MAC addresses are represented as a string like '08:60:6e:7f:74:e7'. __init__ takes the corresponding args in this order.
Attribute |
Description |
Example |
---|---|---|
hwtype |
Hardware address. |
|
proto |
Protocol address. |
|
hlen |
byte length of each hardware address. |
|
plen |
byte length of each protocol address. |
|
opcode |
operation codes. |
|
src_mac |
Hardware address of sender. |
'08:60:6e:7f:74:e7' |
src_ip |
Protocol address of sender. |
'192.0.2.1' |
dst_mac |
Hardware address of target. |
'00:00:00:00:00:00' |
dst_ip |
Protocol address of target. |
'192.0.2.2' |
parser
(buf)¶Decode a protocol header.
This method is used only when decoding a packet.
Decode a protocol header at offset 0 in bytearray buf. Returns the following three objects.
An object to describe the decoded header.
A packet_base.PacketBase subclass appropriate for the rest of the packet. None when the rest of the packet should be considered as raw payload.
The rest of packet.
serialize
(payload, prev)¶Encode a protocol header.
This method is used only when encoding a packet.
Encode a protocol header. Returns a bytearray which contains the header.
payload is the rest of the packet which will immediately follow this header.
prev is a packet_base.PacketBase subclass for the outer protocol header. prev is None if the current header is the outer-most. For example, prev is ipv4 or ipv6 for tcp.serialize.
os_ken.lib.packet.arp.
arp_ip
(opcode, src_mac, src_ip, dst_mac, dst_ip)¶A convenient wrapper for IPv4 ARP for Ethernet.
This is an equivalent of the following code.
arp(ARP_HW_TYPE_ETHERNET, ether.ETH_TYPE_IP, 6, 4, opcode, src_mac, src_ip, dst_mac, dst_ip)
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.