X-Git-Url: https://git.stg.codes/ssmd.git/blobdiff_plain/ae26516a8828d54ab7c0e0bca92031a54a15ed62..8481ea2740db7758f5533abfdbdbacce1ac6b919:/src/acl.cpp diff --git a/src/acl.cpp b/src/acl.cpp index 08f0405..f3f6b77 100644 --- a/src/acl.cpp +++ b/src/acl.cpp @@ -7,7 +7,7 @@ #include "oids.h" #include "logger.h" -using GTS::ACL; +using SSMD::ACL; ACL::ACL(unsigned id, unsigned profileId, @@ -106,6 +106,42 @@ void ACL::appendPdu(Pdu & pdu) const 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 {