From 7265747303f56fc91aad9abbdebbbb7fb7a22ef6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E7=8E=89=E9=91=AB?= Date: Thu, 11 Sep 2025 20:24:50 +0800 Subject: [PATCH 1/3] set eth netlinkinfo route type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 袁玉鑫 --- .../include/dev_interface_state.h | 1 + .../src/dev_interface_state.cpp | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/services/ethernetmanager/include/dev_interface_state.h b/services/ethernetmanager/include/dev_interface_state.h index c84feffa..d19c930a 100644 --- a/services/ethernetmanager/include/dev_interface_state.h +++ b/services/ethernetmanager/include/dev_interface_state.h @@ -77,6 +77,7 @@ private: INetAddr &targetNetAddr); void GetRoutePrefixlen(const std::string &bySrcAddr, const std::vector &fromAddrList, INetAddr &targetNetAddr); + uint8_t GetIpType(const std::string ipAddr); private: ConnLinkState connLinkState_ = UNREGISTERED; diff --git a/services/ethernetmanager/src/dev_interface_state.cpp b/services/ethernetmanager/src/dev_interface_state.cpp index c4df40f8..41c85933 100644 --- a/services/ethernetmanager/src/dev_interface_state.cpp +++ b/services/ethernetmanager/src/dev_interface_state.cpp @@ -239,6 +239,7 @@ void DevInterfaceState::UpdateLinkInfo() Route route; route.iface_ = devName_; route.destination_ = netAddr; + route.destination_.type_ = GetIpType(netAddr.address_); GetTargetNetAddrWithSameFamily(netAddr.address_, ifCfg_->ipStatic_.gatewayList_, route.gateway_); linkInfo_->routeList_.push_back(route); } @@ -273,6 +274,7 @@ void DevInterfaceState::UpdateLanLinkInfo() Route route; route.iface_ = devName_; route.destination_ = netAddr; + route.destination_.type_ = GetIpType(netAddr.address_); GetRoutePrefixlen(netAddr.address_, ifCfg_->ipStatic_.netMaskList_, route.destination_); GetTargetNetAddrWithSameFamily(netAddr.address_, ifCfg_->ipStatic_.gatewayList_, route.gateway_); linkInfo_->routeList_.push_back(route); @@ -303,6 +305,7 @@ void DevInterfaceState::UpdateLanLinkInfo(const sptr &confi Route routeStc; routeStc.iface_ = devName_; routeStc.destination_ = routeAddr; + routeStc.destination_.type_ = GetIpType(routeAddr.address_); GetRoutePrefixlen(routeAddr.address_, config->netMaskList_, routeStc.destination_); GetTargetNetAddrWithSameFamily(routeAddr.address_, config->gatewayList_, routeStc.gateway_); linkInfo_->routeList_.push_back(routeStc); @@ -335,6 +338,7 @@ void DevInterfaceState::UpdateLinkInfo(const sptr &config) Route routeStc; routeStc.iface_ = devName_; routeStc.destination_ = routeAddr; + routeStc.destination_.type_ = GetIpType(routeAddr.address_); GetTargetNetAddrWithSameFamily(routeAddr.address_, config->gatewayList_, routeStc.gateway_); linkInfo_->routeList_.push_back(routeStc); } @@ -371,7 +375,7 @@ void DevInterfaceState::CreateLocalRoute(const std::string &iface, const std::ve : GetIpv4Prefix(ipAddr.address_, netMaskList); Route localRoute; localRoute.iface_ = iface; - localRoute.destination_.type_ = family; + localRoute.destination_.type_ = GetIpType(ipAddr.address_); localRoute.destination_.address_ = routeAddr; localRoute.destination_.prefixlen_ = ipAddr.prefixlen_; localRoute.gateway_.address_ = (family == AF_INET) ? DEFAULT_ROUTE_ADDR : ""; @@ -467,5 +471,17 @@ void DevInterfaceState::GetDumpInfo(std::string &info) data.append(TAB + TAB + "BearerType :" + std::to_string(bearerType_) + "\n"); info.append(data); } + +uint8_t DevInterfaceState::GetIpType(const std::string ipAddr) +{ + auto family = CommonUtils::GetAddrFamily(bySrcAddr); + if (family == AF_INET) { + return INetAddr::IpType::IPV4; + } else if (family == AF_INET6) { + return INetAddr::IpType::IPV6; + } else { + return INetAddr::IpType::UNKNOWN; + } +} } // namespace NetManagerStandard } // namespace OHOS -- Gitee From fcf6f03a6bb05022e39de0d4ac3ffae20dee9c47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E7=8E=89=E9=91=AB?= Date: Thu, 11 Sep 2025 20:28:46 +0800 Subject: [PATCH 2/3] set eth netlinkinfo route type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 袁玉鑫 --- services/ethernetmanager/src/dev_interface_state.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/ethernetmanager/src/dev_interface_state.cpp b/services/ethernetmanager/src/dev_interface_state.cpp index 41c85933..f5925d5a 100644 --- a/services/ethernetmanager/src/dev_interface_state.cpp +++ b/services/ethernetmanager/src/dev_interface_state.cpp @@ -474,7 +474,7 @@ void DevInterfaceState::GetDumpInfo(std::string &info) uint8_t DevInterfaceState::GetIpType(const std::string ipAddr) { - auto family = CommonUtils::GetAddrFamily(bySrcAddr); + auto family = CommonUtils::GetAddrFamily(ipAddr); if (family == AF_INET) { return INetAddr::IpType::IPV4; } else if (family == AF_INET6) { -- Gitee From de6e2396af119b5ec6b26362972568b8032f4e55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E7=8E=89=E9=91=AB?= Date: Fri, 12 Sep 2025 16:26:52 +0800 Subject: [PATCH 3/3] set eth netlinkinfo iptype MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 袁玉鑫 --- .../dev_interface_state_test.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/ethernetmanager/unittest/ethernet_manager_test/dev_interface_state_test.cpp b/test/ethernetmanager/unittest/ethernet_manager_test/dev_interface_state_test.cpp index 67915522..fc0cda0a 100644 --- a/test/ethernetmanager/unittest/ethernet_manager_test/dev_interface_state_test.cpp +++ b/test/ethernetmanager/unittest/ethernet_manager_test/dev_interface_state_test.cpp @@ -347,5 +347,16 @@ HWTEST_F(DevInterfaceStateTest, GetDumpInfoTest001, TestSize.Level0) devInterfaceState.GetDumpInfo(info); EXPECT_NE(info, ""); } + +HWTEST_F(DevInterfaceStateTest, GetIpType001, TestSize.Level0) +{ + DevInterfaceState devInterfaceState; + std::string ip1 = "192.168.1.1"; + EXPECT_EQ(devInterfaceState.GetIpType(ip1), 1); + std::string ip2 = "::1"; + EXPECT_EQ(devInterfaceState.GetIpType(ip2), 2); + std::string ip3 = "wrong ip"; + EXPECT_EQ(devInterfaceState.GetIpType(ip3), 0); +} } // namespace NetManagerStandard } // namespace OHOS \ No newline at end of file -- Gitee