blob: 20eb0ac9356022ee48f0c2f2aa20bd357a229e36 [file] [log] [blame]
// Copyright 2016 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package arc_networkd;
// Best practice is to use optional fields, but since the client and server
// are always in sync, these messages use required fields to save on
// validation.
message DeviceMessage {
required string dev_ifname = 1;
optional string br_ifname = 2;
optional bool teardown = 3; // value is ignored
optional uint32 guest_ip4addr = 4;
optional string guest_ip6addr = 5;
}
message GuestMessage {
enum GuestType {
UNKNOWN_GUEST = 0;
ARC = 1; // ARC++ Container (P & higher)
ARC_LEGACY = 2; // ARC++ Container (N)
ARC_VM = 3; // ARC VM
}
required GuestType type = 1;
enum GuestEvent {
UNKNOWN_EVENT = 0;
START = 1;
STOP = 2;
}
required GuestEvent event = 2;
// The PID of the ARC++ container.
optional int32 arc_pid = 3;
// The VSOCK CID of the ARCVM.
optional int32 arcvm_vsock_cid = 4;
}
message IpHelperMessage {
oneof message_type {
GuestMessage guest_message = 1;
DeviceMessage device_message = 2;
}
}