Closed andy-danieal closed 10 months ago
Hi!
Thanks for sharing valuable information.
As per 5 forwarding levels, But we have check code than i have see only 2 level communication is working because we used that struct
typedef struct zh_network_routing_table_t
{
uint8_t original_target_mac[ESP_NOW_ETH_ALEN];
uint8_t intermediate_target_mac[ESP_NOW_ETH_ALEN];
} __attribute__((packed)) zh_network_routing_table_t;
Can you explain How it's worked with level 5. and How many zh_network_routing_table entry store in each device?
Also, Explain routing_table entry for from D1 to send data D5.
D1 -> D2 -> D3 -> D4 -> D5
D1 -> D6
D1 -> D7 -> D8 -> D5
I'll try to explain in more detail. Each device has only the information necessary to forward the message (final target mac, intermediate router mac). There is no complete information in the node about the full route.
As an example: node mac (final target mac, intermediate router mac). The full route from D1 to D5 will look like this: D1 (D5, D2) -> D2 (D5, D3) -> D3 (D5, D4) -> D4 (D5, D5) -> D5
How many zh_network_routing_table entry store in each device? - Up to uint16_t value, but the maximum value is set in the initial settings (route_vector_size - The maximum size of the routing table. If the size is exceeded, the first route will be deleted. Minimum recommended value: number of planned nodes in the network + 10%.).