import "protocol.proto"; package OstProto; // ARP Protocol message Arp { enum HwAddrMode { kFixed = 0; kIncrement = 1; kDecrement = 2; } enum ProtoAddrMode { kFixedHost = 0; kIncrementHost = 1; kDecrementHost = 2; kRandomHost = 3; } optional uint32 hw_type = 1 [default = 1]; optional uint32 proto_type = 2 [default = 0x800]; optional uint32 hw_addr_len = 3 [default = 6]; optional uint32 proto_addr_len = 4 [default = 4]; optional uint32 op_code = 5 [default = 1]; // 1 => ARP Request optional uint64 sender_hw_addr = 6; optional HwAddrMode sender_hw_addr_mode = 7 [default = kFixed]; optional uint32 sender_hw_addr_count = 8 [default = 16]; optional uint32 sender_proto_addr = 9; optional ProtoAddrMode sender_proto_addr_mode = 10 [default = kFixedHost]; optional uint32 sender_proto_addr_count = 11 [default = 16]; optional fixed32 sender_proto_addr_mask = 12 [default = 0xFFFFFF00]; optional uint64 target_hw_addr = 13; optional HwAddrMode target_hw_addr_mode = 14 [default = kFixed]; optional uint32 target_hw_addr_count = 15 [default = 16]; optional uint32 target_proto_addr = 16; optional ProtoAddrMode target_proto_addr_mode = 17 [default = kFixedHost]; optional uint32 target_proto_addr_count = 18 [default = 16]; optional fixed32 target_proto_addr_mask = 19 [default = 0xFFFFFF00]; } extend Protocol { optional Arp arp = 131; }