/* * Ouroboros - Copyright (C) 2016 - 2026 * * Model description messages * * Dimitri Staessens * Sander Vrijders * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * version 2.1 as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., http://www.fsf.org/about/contact/. */ syntax = "proto2"; message qosspec_msg { required uint32 delay = 1; /* In ms. */ required uint64 bandwidth = 2; /* In bits/s. */ required uint32 availability = 3; /* Class of 9s. */ required uint32 loss = 4; /* Packet loss. */ required uint32 ber = 5; /* Bit error rate, ppb. */ required uint32 service = 6; /* enum qos_service. */ required uint32 max_gap = 7; /* In ms. */ required uint32 timeout = 8; /* Timeout in ms. */ } message flow_info_msg { required uint32 id = 1; required uint32 n_pid = 2; required uint32 n_1_pid = 3; required uint32 mpl = 4; /* MPL in ms. */ required uint32 state = 5; required qosspec_msg qos = 6; required uint32 uid = 7; required uint32 mtu = 8; /* Layer MTU (bytes). */ required uint32 max_rtt = 9; /* Max path RTT (ms). */ } message name_info_msg { required string name = 1; required uint32 pol_lb = 2; required string skey = 3; required string scrt = 4; required string ckey = 5; required string ccrt = 6; } message layer_info_msg { required string name = 1; required uint32 dir_hash_algo = 2; } /* Address of a flow PoA peer. */ message poa_addr_msg { required uint32 type = 1; /* enum poa_type */ optional uint32 ip4 = 2; optional bytes ip6 = 3; optional uint32 port = 4; optional bytes mac = 5; optional uint32 ethertype = 6; optional string dev = 7; /* our device, eth only */ optional string hostname = 8; /* IRMd resolves, UDP only */ optional bytes src_mac = 9; /* our MAC, eth only */ } message ipcp_info_msg { required uint32 type = 1; required string name = 2; required uint32 pid = 3; required uint32 state = 4; }