]> git.stg.codes - ssmd.git/blobdiff - src/acl.cpp
Control dumping snmp scripts.
[ssmd.git] / src / acl.cpp
index 08f0405cef24de540f2f0111682ba36e3418bee6..f3f6b778788481e3081c0bf3bfac6cfb76bd3a45 100644 (file)
@@ -7,7 +7,7 @@
 #include "oids.h"
 #include "logger.h"
 
 #include "oids.h"
 #include "logger.h"
 
-using GTS::ACL;
+using SSMD::ACL;
 
 ACL::ACL(unsigned id,
          unsigned profileId,
 
 ACL::ACL(unsigned id,
          unsigned profileId,
@@ -106,6 +106,42 @@ void ACL::appendPdu(Pdu & pdu) const
     pdu += vb;*/
 }
 
     pdu += vb;*/
 }
 
+std::ostream & SSMD::operator<<(std::ostream & stream, const ACL & acl)
+{
+    std::string oidValue;
+    // MAC
+    if (acl._isUpload) {
+        oidValue = swACLEtherRuleSrcMacAddress;
+        oidValue += acl.getSuffix();
+    } else {
+        oidValue = swACLEtherRuleDstMacAddress;
+        oidValue += acl.getSuffix();
+    }
+    stream << oidValue << " x " << acl._mac << " ";
+
+    // Permit rule
+    oidValue = swACLEtherRulePermit;
+    oidValue += acl.getSuffix();
+    stream << oidValue << " i " << 2 << " ";
+
+    // Port
+    oidValue = swACLEtherRulePort;
+    oidValue += acl.getSuffix();
+    stream << oidValue << " x " << acl._port << " ";
+
+    // Shape
+    oidValue = swACLEtherRuleRxRate;
+    oidValue += acl.getSuffix();
+    stream << oidValue << " i " << acl._shape << " ";
+
+    // Create ACL
+    oidValue = swACLEtherRuleRowStatus;
+    oidValue += acl.getSuffix();
+    stream << oidValue << " i " << 4;
+
+    return stream;
+}
+
 inline
 std::string ACL::getSuffix() const
 {
 inline
 std::string ACL::getSuffix() const
 {