-
Notifications
You must be signed in to change notification settings - Fork 48
Description
Hello,
At my setup I do have 2 i210 linux PCs. AVDECC with different entity ids are running at both of end points. Audio science cmdline controller is running at one of this pc.
I am using open avb stack and I had added a logic to start and stop streaming via controller.
However in one of case where 2 streams are running parallel, each end station is talker for stream 1 and listener for stream 2 and vice versa. Same configuration for avdecc as well.
Now i wish to get STREAM Stop/Start logic to work for both of end stations. Remote station as well as host end station. Everything is fine expect:
end_station_imp.cpp:
end_station_imp::end_station_imp(const uint8_t * frame, size_t frame_len)
{
end_station_connection_status = ' ';
adp_ref = new adp(frame, frame_len);
struct jdksavdecc_eui64 entity_id;
entity_id = adp_ref->get_entity_entity_id();
end_station_entity_id = jdksavdecc_uint64_get(&entity_id, 0);
utility::convert_eui48_to_uint64(adp_ref->get_src_addr().value, end_station_mac);
end_station_init();
}
Both of end stations broadcast ENTITY_AVAILABLE. As observed remote PC always initiate 1st, causing
ENITITY 2 to have PC 2 as end_station_mac whereas it should be for PC 1.
Now once ENTITY_AVAILABLE message received for both entities, end_station_mac will not be overwritten, since it is done once only. Result even after I do select specific ENTITY ID by "select xxxx" command, Stream Start or Stop or any other AEM command goes always to remote end station and never ever to local host( where AVDECC controller and other preferred Entity is located).
How to configure and fix preferred MACs?