Skip to content

Commit 1280544

Browse files
pankorepull[bot]
authored andcommitted
[Ameba] init route hook after getting ipv6 (#25142)
* [hook] init routehook when ipv6 assigned * [build] add route hook to other apps * restyle
1 parent bb1b3d1 commit 1280544

File tree

7 files changed

+96
-3
lines changed

7 files changed

+96
-3
lines changed

examples/all-clusters-app/ameba/main/DeviceCallbacks.cpp

+21-3
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,18 @@ void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_
7272
OnInternetConnectivityChange(event);
7373
break;
7474

75+
case DeviceEventType::kCHIPoBLEConnectionEstablished:
76+
ChipLogProgress(DeviceLayer, "CHIPoBLE Connection Established");
77+
break;
78+
79+
case DeviceEventType::kCHIPoBLEConnectionClosed:
80+
ChipLogProgress(DeviceLayer, "CHIPoBLE Connection Closed");
81+
break;
82+
83+
case DeviceEventType::kCHIPoBLEAdvertisingChange:
84+
ChipLogProgress(DeviceLayer, "CHIPoBLE advertising has changed");
85+
break;
86+
7587
case DeviceEventType::kInterfaceIpAddressChanged:
7688
if ((event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV4_Assigned) ||
7789
(event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV6_Assigned))
@@ -82,6 +94,15 @@ void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_
8294
// newly selected address.
8395
chip::app::DnssdServer::Instance().StartServer();
8496
}
97+
if (event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV6_Assigned)
98+
{
99+
ChipLogProgress(DeviceLayer, "Initializing route hook...");
100+
ameba_route_hook_init();
101+
}
102+
break;
103+
104+
case DeviceEventType::kCommissioningComplete:
105+
ChipLogProgress(DeviceLayer, "Commissioning Complete");
85106
break;
86107
}
87108
}
@@ -122,9 +143,6 @@ void DeviceCallbacks::OnInternetConnectivityChange(const ChipDeviceEvent * event
122143
{
123144
ChipLogProgress(DeviceLayer, "IPv6 Server ready...");
124145
chip::app::DnssdServer::Instance().StartServer();
125-
126-
ChipLogProgress(DeviceLayer, "Initializing route hook...");
127-
ameba_route_hook_init();
128146
#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
129147
// Init OTA requestor only when we have gotten IPv6 address
130148
if (!isOTAInitialized)

examples/light-switch-app/ameba/chip_main.cmake

+3
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,9 @@ list(
156156
${chip_dir}/examples/light-switch-app/ameba/main/Globals.cpp
157157
${chip_dir}/examples/light-switch-app/ameba/main/LEDWidget.cpp
158158

159+
${chip_dir}/examples/platform/ameba/route_hook/ameba_route_hook.c
160+
${chip_dir}/examples/platform/ameba/route_hook/ameba_route_table.c
161+
159162
${chip_dir}/examples/providers/DeviceInfoProviderImpl.cpp
160163
)
161164

examples/light-switch-app/ameba/main/DeviceCallbacks.cpp

+22
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include <app/util/basic-types.h>
3333
#include <app/util/util.h>
3434
#include <lib/dnssd/Advertiser.h>
35+
#include <route_hook/ameba_route_hook.h>
3536
#include <support/CodeUtils.h>
3637
#include <support/logging/CHIPLogging.h>
3738
#include <support/logging/Constants.h>
@@ -71,6 +72,18 @@ void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_
7172
OnInternetConnectivityChange(event);
7273
break;
7374

75+
case DeviceEventType::kCHIPoBLEConnectionEstablished:
76+
ChipLogProgress(DeviceLayer, "CHIPoBLE Connection Established");
77+
break;
78+
79+
case DeviceEventType::kCHIPoBLEConnectionClosed:
80+
ChipLogProgress(DeviceLayer, "CHIPoBLE Connection Closed");
81+
break;
82+
83+
case DeviceEventType::kCHIPoBLEAdvertisingChange:
84+
ChipLogProgress(DeviceLayer, "CHIPoBLE advertising has changed");
85+
break;
86+
7487
case DeviceEventType::kInterfaceIpAddressChanged:
7588
if ((event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV4_Assigned) ||
7689
(event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV6_Assigned))
@@ -81,6 +94,15 @@ void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_
8194
// newly selected address.
8295
chip::app::DnssdServer::Instance().StartServer();
8396
}
97+
if (event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV6_Assigned)
98+
{
99+
ChipLogProgress(DeviceLayer, "Initializing route hook...");
100+
ameba_route_hook_init();
101+
}
102+
break;
103+
104+
case DeviceEventType::kCommissioningComplete:
105+
ChipLogProgress(DeviceLayer, "Commissioning Complete");
84106
break;
85107
}
86108
}

examples/lighting-app/ameba/chip_main.cmake

+3
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,9 @@ list(
149149
${chip_dir}/examples/lighting-app/ameba/main/Globals.cpp
150150
${chip_dir}/examples/lighting-app/ameba/main/LEDWidget.cpp
151151

152+
${chip_dir}/examples/platform/ameba/route_hook/ameba_route_hook.c
153+
${chip_dir}/examples/platform/ameba/route_hook/ameba_route_table.c
154+
152155
${chip_dir}/examples/providers/DeviceInfoProviderImpl.cpp
153156
)
154157

examples/lighting-app/ameba/main/DeviceCallbacks.cpp

+22
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <app/util/basic-types.h>
3434
#include <app/util/util.h>
3535
#include <lib/dnssd/Advertiser.h>
36+
#include <route_hook/ameba_route_hook.h>
3637
#include <support/CodeUtils.h>
3738
#include <support/logging/CHIPLogging.h>
3839
#include <support/logging/Constants.h>
@@ -69,6 +70,18 @@ void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_
6970
OnInternetConnectivityChange(event);
7071
break;
7172

73+
case DeviceEventType::kCHIPoBLEConnectionEstablished:
74+
ChipLogProgress(DeviceLayer, "CHIPoBLE Connection Established");
75+
break;
76+
77+
case DeviceEventType::kCHIPoBLEConnectionClosed:
78+
ChipLogProgress(DeviceLayer, "CHIPoBLE Connection Closed");
79+
break;
80+
81+
case DeviceEventType::kCHIPoBLEAdvertisingChange:
82+
ChipLogProgress(DeviceLayer, "CHIPoBLE advertising has changed");
83+
break;
84+
7285
case DeviceEventType::kInterfaceIpAddressChanged:
7386
if ((event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV4_Assigned) ||
7487
(event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV6_Assigned))
@@ -79,6 +92,15 @@ void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_
7992
// newly selected address.
8093
chip::app::DnssdServer::Instance().StartServer();
8194
}
95+
if (event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV6_Assigned)
96+
{
97+
ChipLogProgress(DeviceLayer, "Initializing route hook...");
98+
ameba_route_hook_init();
99+
}
100+
break;
101+
102+
case DeviceEventType::kCommissioningComplete:
103+
ChipLogProgress(DeviceLayer, "Commissioning Complete");
82104
break;
83105
}
84106
}

examples/ota-requestor-app/ameba/chip_main.cmake

+3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ list(
2626
${chip_dir}/src/app/clusters/ota-requestor/ota-requestor-server.cpp
2727
${chip_dir}/examples/platform/ameba/ota/OTAInitializer.cpp
2828

29+
${chip_dir}/examples/platform/ameba/route_hook/ameba_route_hook.c
30+
${chip_dir}/examples/platform/ameba/route_hook/ameba_route_table.c
31+
2932
${chip_dir}/examples/providers/DeviceInfoProviderImpl.cpp
3033
)
3134

examples/ota-requestor-app/ameba/main/DeviceCallbacks.cpp

+22
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <app/util/basic-types.h>
3434
#include <app/util/util.h>
3535
#include <lib/dnssd/Advertiser.h>
36+
#include <route_hook/ameba_route_hook.h>
3637
#include <support/CodeUtils.h>
3738
#include <support/logging/CHIPLogging.h>
3839
#include <support/logging/Constants.h>
@@ -71,6 +72,18 @@ void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_
7172
OnInternetConnectivityChange(event);
7273
break;
7374

75+
case DeviceEventType::kCHIPoBLEConnectionEstablished:
76+
ChipLogProgress(DeviceLayer, "CHIPoBLE Connection Established");
77+
break;
78+
79+
case DeviceEventType::kCHIPoBLEConnectionClosed:
80+
ChipLogProgress(DeviceLayer, "CHIPoBLE Connection Closed");
81+
break;
82+
83+
case DeviceEventType::kCHIPoBLEAdvertisingChange:
84+
ChipLogProgress(DeviceLayer, "CHIPoBLE advertising has changed");
85+
break;
86+
7487
case DeviceEventType::kInterfaceIpAddressChanged:
7588
if ((event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV4_Assigned) ||
7689
(event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV6_Assigned))
@@ -81,6 +94,15 @@ void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_
8194
// newly selected address.
8295
chip::app::DnssdServer::Instance().StartServer();
8396
}
97+
if (event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV6_Assigned)
98+
{
99+
ChipLogProgress(DeviceLayer, "Initializing route hook...");
100+
ameba_route_hook_init();
101+
}
102+
break;
103+
104+
case DeviceEventType::kCommissioningComplete:
105+
ChipLogProgress(DeviceLayer, "Commissioning Complete");
84106
break;
85107
}
86108
}

0 commit comments

Comments
 (0)