From a307a85d2f7848b7103be5a4c55a58043f82e59e Mon Sep 17 00:00:00 2001 From: Daniel Markstedt Date: Sat, 17 Feb 2024 19:23:52 +0900 Subject: [PATCH 1/5] Disable piscsi_bridge creation --- cpp/devices/ctapdriver.cpp | 10 +++++++++- cpp/devices/ctapdriver.h | 2 +- cpp/devices/scsi_daynaport.cpp | 2 ++ cpp/devices/scsi_host_bridge.cpp | 2 ++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/cpp/devices/ctapdriver.cpp b/cpp/devices/ctapdriver.cpp index 85fc2adc..d034c990 100644 --- a/cpp/devices/ctapdriver.cpp +++ b/cpp/devices/ctapdriver.cpp @@ -113,6 +113,7 @@ bool CTapDriver::Init(const param_map& const_params) return false; } +#if 0 const int br_socket_fd = socket(AF_LOCAL, SOCK_STREAM, 0); if (br_socket_fd < 0) { LogErrno("Can't open bridge socket"); @@ -121,15 +122,17 @@ bool CTapDriver::Init(const param_map& const_params) close(ip_fd); return false; } +#endif auto cleanUp = [&] (const string& error) { LogErrno(error); close(m_hTAP); close(ip_fd); - close(br_socket_fd); + // close(br_socket_fd); return false; }; +#if 0 // Check if the bridge has already been created // TODO Find an alternative to accessing a file, there is most likely a system call/ioctl if (access(string("/sys/class/net/" + BRIDGE_NAME).c_str(), F_OK)) { @@ -162,6 +165,7 @@ bool CTapDriver::Init(const param_map& const_params) else { spdlog::info(BRIDGE_NAME + " is already available"); } +#endif spdlog::trace(">ip link set piscsi0 up"); @@ -197,6 +201,7 @@ bool CTapDriver::Init(const param_map& const_params) void CTapDriver::CleanUp() const { if (m_hTAP != -1) { +#if 0 if (const int br_socket_fd = socket(AF_LOCAL, SOCK_STREAM, 0); br_socket_fd < 0) { LogErrno("Can't open bridge socket"); } else { @@ -207,6 +212,7 @@ void CTapDriver::CleanUp() const } close(br_socket_fd); } +#endif // Release TAP device close(m_hTAP); @@ -270,11 +276,13 @@ string CTapDriver::SetUpNonEth0(int socket_fd, int ip_fd, const string& s) return "Error extracting inet address and netmask"; } +#if 0 spdlog::trace(">brctl addbr " + BRIDGE_NAME); if (ioctl(socket_fd, SIOCBRADDBR, BRIDGE_NAME.c_str()) < 0) { return "Can't ioctl SIOCBRADDBR"; } +#endif ifreq ifr_a; ifr_a.ifr_addr.sa_family = AF_INET; diff --git a/cpp/devices/ctapdriver.h b/cpp/devices/ctapdriver.h index 1e0eff68..1e60f4ee 100644 --- a/cpp/devices/ctapdriver.h +++ b/cpp/devices/ctapdriver.h @@ -29,7 +29,7 @@ using namespace std; class CTapDriver { - static const string BRIDGE_NAME; +// static const string BRIDGE_NAME; const inline static string DEFAULT_IP = "10.10.20.1/24"; //NOSONAR This hardcoded IP address is safe diff --git a/cpp/devices/scsi_daynaport.cpp b/cpp/devices/scsi_daynaport.cpp index 7c1c390f..2d58caab 100644 --- a/cpp/devices/scsi_daynaport.cpp +++ b/cpp/devices/scsi_daynaport.cpp @@ -72,10 +72,12 @@ bool SCSIDaynaPort::Init(const param_map& params) return true; } +#if 0 void SCSIDaynaPort::CleanUp() { tap.CleanUp(); } +#endif vector SCSIDaynaPort::InquiryInternal() const { diff --git a/cpp/devices/scsi_host_bridge.cpp b/cpp/devices/scsi_host_bridge.cpp index 394441c1..370e7d77 100644 --- a/cpp/devices/scsi_host_bridge.cpp +++ b/cpp/devices/scsi_host_bridge.cpp @@ -67,10 +67,12 @@ bool SCSIBR::Init(const param_map& params) #endif } +#if 0 void SCSIBR::CleanUp() { tap.CleanUp(); } +#endif vector SCSIBR::InquiryInternal() const { From 806fa256097b1d336de462c7ec87b95641d4657c Mon Sep 17 00:00:00 2001 From: Daniel Markstedt Date: Sat, 17 Feb 2024 19:57:01 +0900 Subject: [PATCH 2/5] Disable piscsi_bridge creation --- cpp/devices/ctapdriver.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cpp/devices/ctapdriver.cpp b/cpp/devices/ctapdriver.cpp index d034c990..2ecb171d 100644 --- a/cpp/devices/ctapdriver.cpp +++ b/cpp/devices/ctapdriver.cpp @@ -29,9 +29,10 @@ using namespace std; using namespace piscsi_util; using namespace network_util; -const string CTapDriver::BRIDGE_NAME = "piscsi_bridge"; +// const string CTapDriver::BRIDGE_NAME = "piscsi_bridge"; -static string br_setif(int br_socket_fd, const string& bridgename, const string& ifname, bool add) { +//static string br_setif(int br_socket_fd, const string& bridgename, const string& ifname, bool add) { +static string br_setif(int br_socket_fd, const string& ifname, bool add) { #ifndef __linux__ return "if_nametoindex: Linux is required"; #else @@ -40,10 +41,12 @@ static string br_setif(int br_socket_fd, const string& bridgename, const string& if (ifr.ifr_ifindex == 0) { return "Can't if_nametoindex " + ifname; } +#if 0 strncpy(ifr.ifr_name, bridgename.c_str(), IFNAMSIZ - 1); //NOSONAR Using strncpy is safe if (ioctl(br_socket_fd, add ? SIOCBRADDIF : SIOCBRDELIF, &ifr) < 0) { return "Can't ioctl " + string(add ? "SIOCBRADDIF" : "SIOCBRDELIF"); } +#endif return ""; #endif } @@ -173,11 +176,13 @@ bool CTapDriver::Init(const param_map& const_params) return cleanUp(error); } +#if 0 spdlog::trace(">brctl addif " + BRIDGE_NAME + " piscsi0"); if (const string error = br_setif(br_socket_fd, BRIDGE_NAME, "piscsi0", true); !error.empty()) { return cleanUp(error); } +#endif spdlog::trace("Getting the MAC address"); @@ -251,6 +256,7 @@ pair CTapDriver::ExtractAddressAndMask(const string& s) string CTapDriver::SetUpEth0(int socket_fd, const string& bridge_interface) { +#if 0 #ifdef __linux__ spdlog::trace(">brctl addbr " + BRIDGE_NAME); @@ -263,6 +269,7 @@ string CTapDriver::SetUpEth0(int socket_fd, const string& bridge_interface) if (const string error = br_setif(socket_fd, BRIDGE_NAME, bridge_interface, true); !error.empty()) { return error; } +#endif #endif return ""; From 6b867346bc3d86b10ae62bcd1181bff533447823 Mon Sep 17 00:00:00 2001 From: Daniel Markstedt Date: Sat, 17 Feb 2024 20:06:00 +0900 Subject: [PATCH 3/5] Disable piscsi_bridge creation --- cpp/devices/ctapdriver.cpp | 12 ++++++------ cpp/devices/ctapdriver.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cpp/devices/ctapdriver.cpp b/cpp/devices/ctapdriver.cpp index 2ecb171d..85f0faf1 100644 --- a/cpp/devices/ctapdriver.cpp +++ b/cpp/devices/ctapdriver.cpp @@ -32,7 +32,7 @@ using namespace network_util; // const string CTapDriver::BRIDGE_NAME = "piscsi_bridge"; //static string br_setif(int br_socket_fd, const string& bridgename, const string& ifname, bool add) { -static string br_setif(int br_socket_fd, const string& ifname, bool add) { +static string br_setif(const string& ifname) { #ifndef __linux__ return "if_nametoindex: Linux is required"; #else @@ -195,7 +195,7 @@ bool CTapDriver::Init(const param_map& const_params) memcpy(m_MacAddr.data(), ifr.ifr_hwaddr.sa_data, m_MacAddr.size()); close(ip_fd); - close(br_socket_fd); + // close(br_socket_fd); spdlog::info("Tap device " + string(ifr.ifr_name) + " created"); @@ -254,9 +254,9 @@ pair CTapDriver::ExtractAddressAndMask(const string& s) return { address, netmask }; } +#if 0 string CTapDriver::SetUpEth0(int socket_fd, const string& bridge_interface) { -#if 0 #ifdef __linux__ spdlog::trace(">brctl addbr " + BRIDGE_NAME); @@ -269,12 +269,13 @@ string CTapDriver::SetUpEth0(int socket_fd, const string& bridge_interface) if (const string error = br_setif(socket_fd, BRIDGE_NAME, bridge_interface, true); !error.empty()) { return error; } -#endif #endif return ""; } +#endif +#if 0 string CTapDriver::SetUpNonEth0(int socket_fd, int ip_fd, const string& s) { #ifdef __linux__ @@ -283,13 +284,11 @@ string CTapDriver::SetUpNonEth0(int socket_fd, int ip_fd, const string& s) return "Error extracting inet address and netmask"; } -#if 0 spdlog::trace(">brctl addbr " + BRIDGE_NAME); if (ioctl(socket_fd, SIOCBRADDBR, BRIDGE_NAME.c_str()) < 0) { return "Can't ioctl SIOCBRADDBR"; } -#endif ifreq ifr_a; ifr_a.ifr_addr.sa_family = AF_INET; @@ -316,6 +315,7 @@ string CTapDriver::SetUpNonEth0(int socket_fd, int ip_fd, const string& s) return ""; } +#endif string CTapDriver::IpLink(bool enable) const { diff --git a/cpp/devices/ctapdriver.h b/cpp/devices/ctapdriver.h index 1e60f4ee..9fac8e66 100644 --- a/cpp/devices/ctapdriver.h +++ b/cpp/devices/ctapdriver.h @@ -56,7 +56,7 @@ public: private: - static string SetUpEth0(int, const string&); + //static string SetUpEth0(int, const string&); static string SetUpNonEth0(int, int, const string&); static pair ExtractAddressAndMask(const string&); From 5c74ca177f8758ebe1daaf7ce62be010a3568c35 Mon Sep 17 00:00:00 2001 From: Daniel Markstedt Date: Sat, 17 Feb 2024 20:07:26 +0900 Subject: [PATCH 4/5] Disable piscsi_bridge creation --- cpp/devices/ctapdriver.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/cpp/devices/ctapdriver.cpp b/cpp/devices/ctapdriver.cpp index 85f0faf1..b3e87815 100644 --- a/cpp/devices/ctapdriver.cpp +++ b/cpp/devices/ctapdriver.cpp @@ -31,8 +31,8 @@ using namespace network_util; // const string CTapDriver::BRIDGE_NAME = "piscsi_bridge"; -//static string br_setif(int br_socket_fd, const string& bridgename, const string& ifname, bool add) { -static string br_setif(const string& ifname) { +#if 0 +static string br_setif(int br_socket_fd, const string& bridgename, const string& ifname, bool add) { #ifndef __linux__ return "if_nametoindex: Linux is required"; #else @@ -41,15 +41,14 @@ static string br_setif(const string& ifname) { if (ifr.ifr_ifindex == 0) { return "Can't if_nametoindex " + ifname; } -#if 0 strncpy(ifr.ifr_name, bridgename.c_str(), IFNAMSIZ - 1); //NOSONAR Using strncpy is safe if (ioctl(br_socket_fd, add ? SIOCBRADDIF : SIOCBRDELIF, &ifr) < 0) { return "Can't ioctl " + string(add ? "SIOCBRADDIF" : "SIOCBRDELIF"); } -#endif return ""; #endif } +#endif string ip_link(int fd, const char* ifname, bool up) { #ifndef __linux__ From 3223f2ad64a626305d24514d5a14bcaedcbe80fe Mon Sep 17 00:00:00 2001 From: Daniel Markstedt Date: Sat, 17 Feb 2024 20:13:41 +0900 Subject: [PATCH 5/5] Disable piscsi_bridge creation --- cpp/devices/scsi_daynaport.h | 2 +- cpp/devices/scsi_host_bridge.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/devices/scsi_daynaport.h b/cpp/devices/scsi_daynaport.h index 6074e081..e45f1eb4 100644 --- a/cpp/devices/scsi_daynaport.h +++ b/cpp/devices/scsi_daynaport.h @@ -57,7 +57,7 @@ public: ~SCSIDaynaPort() override = default; bool Init(const param_map&) override; - void CleanUp() override; +// void CleanUp() override; param_map GetDefaultParams() const override { return tap.GetDefaultParams(); } diff --git a/cpp/devices/scsi_host_bridge.h b/cpp/devices/scsi_host_bridge.h index b2cdf981..06ae4af3 100644 --- a/cpp/devices/scsi_host_bridge.h +++ b/cpp/devices/scsi_host_bridge.h @@ -36,7 +36,7 @@ public: ~SCSIBR() override = default; bool Init(const param_map&) override; - void CleanUp() override; +// void CleanUp() override; param_map GetDefaultParams() const override { return tap.GetDefaultParams(); }