// 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 DeviceConfig {
  required string br_ifname = 1;
  required string br_ipv4 = 2;
  required string arc_ifname = 3;
  required string arc_ipv4 = 4;
  required string mac_addr = 5;
  required bool fwd_multicast = 6;
  required bool find_ipv6_routes = 7;
}

message SetArcIp {
  required bytes prefix = 1;
  required int32 prefix_len = 2;
  required bytes router = 3;
  required string lan_ifname = 4;
}

message IpHelperMessage {
  required string dev_ifname = 1;
  oneof message_type {
    DeviceConfig dev_config = 2;
    SetArcIp set_arc_ip = 3;           // IPv6 parameters
    bool clear_arc_ip = 4;             // value is ignored
    string enable_inbound_ifname = 5;  // value is LAN ifname
    bool disable_inbound = 6;          // value is ignored
    bool teardown = 7;                 // value is ignored
  }
}
