summaryrefslogtreecommitdiff
path: root/netconf-service
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2013-09-10 09:40:37 -0400
committerAdam Ierymenko <adam.ierymenko@gmail.com>2013-09-10 09:40:37 -0400
commita3a2b8dedb347c7caf92e707cd65be302c78575d (patch)
treefe494fde0800a43bd874f4dbc3df2bff5f80029f /netconf-service
parenta40b8c07f49bd9ad2748430eb9e79680059458fd (diff)
downloadinfinitytier-a3a2b8dedb347c7caf92e707cd65be302c78575d.tar.gz
infinitytier-a3a2b8dedb347c7caf92e707cd65be302c78575d.zip
Look up rate info from database, but going to drop min balance cause it seems unnecessary. Also work in progress on membership certs.
Diffstat (limited to 'netconf-service')
-rw-r--r--netconf-service/netconf.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/netconf-service/netconf.cpp b/netconf-service/netconf.cpp
index d0453431..436d0899 100644
--- a/netconf-service/netconf.cpp
+++ b/netconf-service/netconf.cpp
@@ -114,7 +114,7 @@ int main(int argc,char **argv)
strcpy(mysqlPassword,ee);
}
- char buf[131072];
+ char buf[131072],buf2[131072];
std::string dictBuf;
try {
@@ -255,6 +255,30 @@ int main(int argc,char **argv)
}
}
+ Dictionary multicastRates;
+ {
+ Query q = dbCon->query();
+ q << "SELECT DISTINCT multicastGroupMac,multicastGroupAdi,preload,maxBalance,accrual FROM NetworkMulticastRates WHERE Network_id = " << nwid;
+ StoreQueryResult rs = q.store();
+ for(unsigned long i=0;i<rs.num_rows();++i) {
+ long preload = (long)rs[i]["preload"];
+ long maxBalance = (long)rs[i]["maxBalance"];
+ long accrual = (long)rs[i]["accrual"];
+ sprintf(buf2,"%s%lx,%s%lx,%s%lx",
+ ((preload < 0) ? "-" : ""),
+ preload,
+ ((maxBalance < 0) ? "-" : ""),
+ maxBalance,
+ ((accrual < 0) ? "-" : ""),
+ accrual);
+ unsigned long long mac = (unsigned long long)rs[i]["multicastGroupMac"];
+ if (mac) {
+ sprintf(buf,"%.12llx/%lx",(mac & 0xffffffffffffULL),(unsigned long)rs[i]["multicastGroupAdi"]);
+ multicastRates[buf] = buf2;
+ } else multicastRates["*"] = buf2;
+ }
+ }
+
Dictionary netconf;
sprintf(buf,"%.16llx",(unsigned long long)nwid);
@@ -265,6 +289,7 @@ int main(int argc,char **argv)
netconf["desc"] = desc;
netconf["etherTypes"] = etherTypeWhitelistOld; // TODO: remove, old name
netconf["et"] = etherTypeWhitelist;
+ netconf["mr"] = multicastRates.toString();
sprintf(buf,"%llx",(unsigned long long)Utils::now());
netconf["ts"] = buf;