summaryrefslogtreecommitdiff
path: root/src/lib/pb
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/pb')
-rw-r--r--src/lib/pb/ipcp.proto7
-rw-r--r--src/lib/pb/ipcp_config.proto27
-rw-r--r--src/lib/pb/irm.proto9
-rw-r--r--src/lib/pb/model.proto13
4 files changed, 44 insertions, 12 deletions
diff --git a/src/lib/pb/ipcp.proto b/src/lib/pb/ipcp.proto
index afee4f91..298a15e2 100644
--- a/src/lib/pb/ipcp.proto
+++ b/src/lib/pb/ipcp.proto
@@ -40,6 +40,9 @@ enum ipcp_msg_code {
IPCP_DISCONNECT = 11;
IPCP_REPLY = 12;
IPCP_FLOW_UPDATE = 13;
+ IPCP_ATTACH = 14;
+ IPCP_DETACH = 15;
+ IPCP_LIST_POAS = 16;
}
message ipcp_msg {
@@ -58,4 +61,8 @@ message ipcp_msg {
optional sint32 mpl = 13; /* MPL in ms. */
optional int32 result = 14;
optional uint32 uid = 15; /* 0 = GSPP, >0 = PUP uid */
+ optional poa_addr_msg peer = 16; /* peer PoA address */
+ optional bool is_poa = 17; /* flow rides a PoA */
+ optional poa_spec_msg poa = 18; /* PoA to attach */
+ repeated poa_spec_msg poas = 19; /* PoAs attached */
}
diff --git a/src/lib/pb/ipcp_config.proto b/src/lib/pb/ipcp_config.proto
index a111b6d8..f6d313ac 100644
--- a/src/lib/pb/ipcp_config.proto
+++ b/src/lib/pb/ipcp_config.proto
@@ -66,29 +66,32 @@ message uni_config_msg {
required uint32 cong_avoid = 4;
}
-message eth_config_msg {
+message eth_poa_msg {
required string dev = 1;
required uint32 ethertype = 2;
+ optional bytes mac = 3;
}
-message udp4_config_msg {
- required uint32 ip_addr = 1;
- required uint32 port = 2;
- required uint32 dns_addr = 3; /* set to 0 if unused */
+message udp4_poa_msg {
+ required uint32 ip_addr = 1;
+ required uint32 port = 2;
}
-message udp6_config_msg {
- required bytes ip_addr = 1;
- required uint32 port = 2;
- required bytes dns_addr = 3; /* set to NULL if unused */
+message udp6_poa_msg {
+ required bytes ip_addr = 1;
+ required uint32 port = 2;
}
+/* Exactly one field is set; presence is the PoA type. */
+message poa_spec_msg {
+ optional udp4_poa_msg udp4 = 1;
+ optional udp6_poa_msg udp6 = 2;
+ optional eth_poa_msg eth = 3;
+}
+
message ipcp_config_msg {
required layer_info_msg layer_info = 1;
required uint32 ipcp_type = 2;
optional uni_config_msg unicast = 3;
- optional udp4_config_msg udp4 = 4;
- optional udp6_config_msg udp6 = 5;
- optional eth_config_msg eth = 6;
}
diff --git a/src/lib/pb/irm.proto b/src/lib/pb/irm.proto
index f54bc9ea..8f594fa3 100644
--- a/src/lib/pb/irm.proto
+++ b/src/lib/pb/irm.proto
@@ -55,6 +55,12 @@ enum irm_msg_code {
IRM_REPLY = 27;
IRM_FLOW_UPDATE = 28;
IPCP_FLOW_UPDATE_ARR = 29;
+ IRM_POA_FLOW_ALLOC = 30;
+ IRM_POA_FLOW_ALLOC_R = 31;
+ IPCP_POA_FLOW_REQ_ARR = 32;
+ IRM_ATTACH_IPCP = 33;
+ IRM_DETACH_IPCP = 34;
+ IRM_LIST_POAS = 35;
}
message timespec_msg {
@@ -101,4 +107,7 @@ message irm_msg {
optional uint32 generation = 28; /* re-key batch generation */
optional bool rekey = 29; /* re-key watermark trigger */
optional bool rk_initiator = 30; /* re-key proof-holder side */
+ optional poa_addr_msg peer = 32; /* peer PoA address */
+ optional poa_spec_msg poa = 33; /* PoA to attach */
+ repeated poa_spec_msg poas = 34; /* PoAs attached */
}
diff --git a/src/lib/pb/model.proto b/src/lib/pb/model.proto
index 4c1564a5..e00f3e12 100644
--- a/src/lib/pb/model.proto
+++ b/src/lib/pb/model.proto
@@ -58,6 +58,19 @@ message layer_info_msg {
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;