File indexing completed on 2024-03-24 04:02:52
0001 /* 0002 SPDX-FileCopyrightText: Pranav Gade <pranavgade20@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #include "ovsbridgesetting.h" 0008 #include "ovsbridgesetting_p.h" 0009 0010 #include <QDebug> 0011 0012 #if !NM_CHECK_VERSION(1, 10, 0) 0013 #define NM_SETTING_OVS_BRIDGE_SETTING_NAME "ovs-bridge" 0014 #define NM_SETTING_OVS_BRIDGE_FAIL_MODE "fail-mode" 0015 #define NM_SETTING_OVS_BRIDGE_MCAST_SNOOPING_ENABLE "mcast-snooping-enable" 0016 #define NM_SETTING_OVS_BRIDGE_RSTP_ENABLE "rstp-enable" 0017 #define NM_SETTING_OVS_BRIDGE_STP_ENABLE "stp-enable" 0018 #endif 0019 0020 NetworkManager::OvsBridgeSettingPrivate::OvsBridgeSettingPrivate() 0021 : name(NM_SETTING_OVS_BRIDGE_SETTING_NAME) 0022 , mcastSnoopingEnable(false) 0023 , rstpEnable(false) 0024 , stpEnable(false) 0025 { 0026 } 0027 0028 NetworkManager::OvsBridgeSetting::OvsBridgeSetting() 0029 : Setting(Setting::OvsBridge) 0030 , d_ptr(new OvsBridgeSettingPrivate()) 0031 { 0032 } 0033 0034 NetworkManager::OvsBridgeSetting::OvsBridgeSetting(const Ptr &other) 0035 : Setting(other) 0036 , d_ptr(new OvsBridgeSettingPrivate()) 0037 { 0038 setFailMode(other->failMode()); 0039 setMcastSnoopingEnable(other->mcastSnoopingEnable()); 0040 setRstpEnable(other->rstpEnable()); 0041 setStpEnable(other->stpEnable()); 0042 } 0043 0044 NetworkManager::OvsBridgeSetting::~OvsBridgeSetting() 0045 { 0046 delete d_ptr; 0047 } 0048 0049 QString NetworkManager::OvsBridgeSetting::name() const 0050 { 0051 Q_D(const OvsBridgeSetting); 0052 0053 return d->name; 0054 } 0055 0056 void NetworkManager::OvsBridgeSetting::setMcastSnoopingEnable(bool mcastSnoopingEnable) 0057 { 0058 Q_D(OvsBridgeSetting); 0059 0060 d->mcastSnoopingEnable = mcastSnoopingEnable; 0061 } 0062 0063 bool NetworkManager::OvsBridgeSetting::mcastSnoopingEnable() const 0064 { 0065 Q_D(const OvsBridgeSetting); 0066 0067 return d->mcastSnoopingEnable; 0068 } 0069 0070 void NetworkManager::OvsBridgeSetting::setRstpEnable(bool rstpEnable) 0071 { 0072 Q_D(OvsBridgeSetting); 0073 0074 d->rstpEnable = rstpEnable; 0075 } 0076 0077 bool NetworkManager::OvsBridgeSetting::rstpEnable() const 0078 { 0079 Q_D(const OvsBridgeSetting); 0080 0081 return d->rstpEnable; 0082 } 0083 0084 void NetworkManager::OvsBridgeSetting::setStpEnable(bool stpEnable) 0085 { 0086 Q_D(OvsBridgeSetting); 0087 0088 d->stpEnable = stpEnable; 0089 } 0090 0091 bool NetworkManager::OvsBridgeSetting::stpEnable() const 0092 { 0093 Q_D(const OvsBridgeSetting); 0094 0095 return d->stpEnable; 0096 } 0097 0098 void NetworkManager::OvsBridgeSetting::setFailMode(const QString &mode) 0099 { 0100 Q_D(OvsBridgeSetting); 0101 0102 d->failMode = mode; 0103 } 0104 0105 QString NetworkManager::OvsBridgeSetting::failMode() const 0106 { 0107 Q_D(const OvsBridgeSetting); 0108 0109 return d->failMode; 0110 } 0111 0112 void NetworkManager::OvsBridgeSetting::fromMap(const QVariantMap &setting) 0113 { 0114 if (setting.contains(QLatin1String(NM_SETTING_OVS_BRIDGE_MCAST_SNOOPING_ENABLE))) { 0115 setMcastSnoopingEnable(setting.value(QLatin1String(NM_SETTING_OVS_BRIDGE_MCAST_SNOOPING_ENABLE)).toBool()); 0116 } 0117 0118 if (setting.contains(QLatin1String(NM_SETTING_OVS_BRIDGE_RSTP_ENABLE))) { 0119 setRstpEnable(setting.value(QLatin1String(NM_SETTING_OVS_BRIDGE_RSTP_ENABLE)).toBool()); 0120 } 0121 0122 if (setting.contains(QLatin1String(NM_SETTING_OVS_BRIDGE_STP_ENABLE))) { 0123 setStpEnable(setting.value(QLatin1String(NM_SETTING_OVS_BRIDGE_STP_ENABLE)).toBool()); 0124 } 0125 0126 if (setting.contains(QLatin1String(NM_SETTING_OVS_BRIDGE_FAIL_MODE))) { 0127 setFailMode(setting.value(QLatin1String(NM_SETTING_OVS_BRIDGE_FAIL_MODE)).toString()); 0128 } 0129 } 0130 0131 QVariantMap NetworkManager::OvsBridgeSetting::toMap() const 0132 { 0133 QVariantMap setting; 0134 0135 setting.insert(QLatin1String(NM_SETTING_OVS_BRIDGE_MCAST_SNOOPING_ENABLE), mcastSnoopingEnable()); 0136 setting.insert(QLatin1String(NM_SETTING_OVS_BRIDGE_RSTP_ENABLE), rstpEnable()); 0137 setting.insert(QLatin1String(NM_SETTING_OVS_BRIDGE_STP_ENABLE), stpEnable()); 0138 0139 if (!failMode().isEmpty()) { 0140 setting.insert(QLatin1String(NM_SETTING_OVS_BRIDGE_FAIL_MODE), failMode()); 0141 } 0142 0143 return setting; 0144 } 0145 0146 QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::OvsBridgeSetting &setting) 0147 { 0148 dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n'; 0149 dbg.nospace() << "initialized: " << !setting.isNull() << '\n'; 0150 0151 dbg.nospace() << NM_SETTING_OVS_BRIDGE_MCAST_SNOOPING_ENABLE << ": " << setting.mcastSnoopingEnable() << '\n'; 0152 dbg.nospace() << NM_SETTING_OVS_BRIDGE_RSTP_ENABLE << ": " << setting.rstpEnable() << '\n'; 0153 dbg.nospace() << NM_SETTING_OVS_BRIDGE_STP_ENABLE << ": " << setting.stpEnable() << '\n'; 0154 dbg.nospace() << NM_SETTING_OVS_BRIDGE_FAIL_MODE << ": " << setting.failMode() << '\n'; 0155 0156 return dbg.maybeSpace(); 0157 }