summaryrefslogtreecommitdiff
path: root/controller
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2016-10-05 16:38:42 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2016-10-05 16:38:42 -0700
commit45c4ccb15362e17ec7030287a314df19a830f0f3 (patch)
tree5b7cc570cb5e3279da2c54513949fc5d7ebc0fbc /controller
parentadeb7e7da0e5d1e267c272a4f1d1c9b731e291d9 (diff)
downloadinfinitytier-45c4ccb15362e17ec7030287a314df19a830f0f3.tar.gz
infinitytier-45c4ccb15362e17ec7030287a314df19a830f0f3.zip
Add a tags both equal match.
Diffstat (limited to 'controller')
-rw-r--r--controller/EmbeddedNetworkController.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp
index 7fa66224..aa95ac64 100644
--- a/controller/EmbeddedNetworkController.cpp
+++ b/controller/EmbeddedNetworkController.cpp
@@ -287,6 +287,12 @@ static json _renderRule(ZT_VirtualNetworkRule &rule)
r["id"] = rule.v.tag.id;
r["value"] = rule.v.tag.value;
break;
+ case ZT_NETWORK_RULE_MATCH_TAGS_EQUAL:
+ r["type"] = "MATCH_TAGS_EQUAL";
+ r["not"] = ((rule.t & 0x80) != 0);
+ r["id"] = rule.v.tag.id;
+ r["value"] = rule.v.tag.value;
+ break;
}
return r;
}
@@ -458,6 +464,11 @@ static bool _parseRule(json &r,ZT_VirtualNetworkRule &rule)
rule.v.tag.id = (uint32_t)(_jI(r["id"],0ULL) & 0xffffffffULL);
rule.v.tag.value = (uint32_t)(_jI(r["value"],0ULL) & 0xffffffffULL);
return true;
+ } else if (t == "MATCH_TAGS_EQUAL") {
+ rule.t |= ZT_NETWORK_RULE_MATCH_TAGS_EQUAL;
+ rule.v.tag.id = (uint32_t)(_jI(r["id"],0ULL) & 0xffffffffULL);
+ rule.v.tag.value = (uint32_t)(_jI(r["value"],0ULL) & 0xffffffffULL);
+ return true;
}
return false;
}