int aecp::ether_frame_init(end_station *end_station, struct jdksavdecc_frame *ether_frame) { /*** Offset to write the field to ***/ size_t ether_frame_pos = 0x0; jdksavdecc_frame_init(ether_frame); /************************************************ Ethernet Frame *************************************/ ether_frame->ethertype = JDKSAVDECC_AVTP_ETHERTYPE; utility::convert_uint64_to_eui48(net_interface_ref->get_mac(), ether_frame->src_address.value); utility::convert_uint64_to_eui48(end_station->get_mac(), ether_frame->dest_address.value); ether_frame->length = AECP_FRAME_LEN; // Length of AECP packet is 64 bytes /*********************** Fill frame payload with Ethernet frame information ********************/ jdksavdecc_frame_write(ether_frame, ether_frame->payload, ether_frame_pos, ETHER_HDR_SIZE); return 0; }
int aecp_controller_state_machine::ether_frame_init(uint64_t end_station_mac, struct jdksavdecc_frame *cmd_frame, uint16_t len) { /*** Offset to write the field to ***/ size_t ether_frame_pos = 0; jdksavdecc_frame_init(cmd_frame); /**************************************** Ethernet Frame *************************************/ cmd_frame->ethertype = JDKSAVDECC_AVTP_ETHERTYPE; utility::convert_uint64_to_eui48(net_interface_ref->mac_addr(), cmd_frame->src_address.value); utility::convert_uint64_to_eui48(end_station_mac, cmd_frame->dest_address.value); cmd_frame->length = len; /****************** Fill frame payload with Ethernet frame information ****************/ jdksavdecc_frame_write(cmd_frame, cmd_frame->payload, ether_frame_pos, ETHER_HDR_SIZE); return 0; }
int acmp_controller_state_machine::ether_frame_init(struct jdksavdecc_frame *cmd_frame) { /*** Offset to write the field to ***/ size_t ether_frame_pos = 0; jdksavdecc_frame_init(cmd_frame); /************************************************************ Ethernet Frame ********************************************************/ cmd_frame->ethertype = JDKSAVDECC_AVTP_ETHERTYPE; utility->convert_uint64_to_eui48(net_interface_ref->mac_addr(), cmd_frame->src_address.value); // Send from the Controller MAC address cmd_frame->dest_address = jdksavdecc_multicast_adp_acmp; // Send to the ACMP multicast destination MAC address cmd_frame->length = ACMP_FRAME_LEN; // Length of ACMP packet is 70 bytes /****************** Fill frame payload with Ethernet frame information ****************/ jdksavdecc_frame_write(cmd_frame, cmd_frame->payload, ether_frame_pos, ETHER_HDR_SIZE); return 0; }