summaryrefslogtreecommitdiff
path: root/lib/common/avb.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/common/avb.h')
-rw-r--r--lib/common/avb.h200
1 files changed, 11 insertions, 189 deletions
diff --git a/lib/common/avb.h b/lib/common/avb.h
index 55ffc195..0cf2d4e7 100644
--- a/lib/common/avb.h
+++ b/lib/common/avb.h
@@ -16,194 +16,16 @@
*
*/
-#ifndef __AVBTP_H__
-#define __AVBTP_H__
-
-#include <inttypes.h>
-
-#include <igb.h>
-
-#define VALID 1
-#define INVALID 0
-
-#define MAC_ADDR_LEN 6
-
-#define IGB_BIND_NAMESZ 24
-
-#define SHM_SIZE (4*8 + sizeof(pthread_mutex_t)) /* 3 - 64 bit and 2 - 32 bits */
-#define SHM_NAME "/ptp"
-
-#define MAX_SAMPLE_VALUE ((1U << ((sizeof(int32_t)*8)-1))-1)
-
-#define IEEE_61883_IIDC_SUBTYPE 0x0
-
-#define MRPD_PORT_DEFAULT 7500
-
-#define STREAM_ID_SIZE 8
-
-#define ETHER_TYPE_AVTP 0x22f0
-
-typedef struct __attribute__ ((packed)) {
- uint64_t subtype:7;
- uint64_t cd_indicator:1;
- uint64_t timestamp_valid:1;
- uint64_t gateway_valid:1;
- uint64_t reserved0:1;
- uint64_t reset:1;
- uint64_t version:3;
- uint64_t sid_valid:1;
- uint64_t seq_number:8;
- uint64_t timestamp_uncertain:1;
- uint64_t reserved1:7;
- uint64_t stream_id;
- uint64_t timestamp:32;
- uint64_t gateway_info:32;
- uint64_t length:16;
-
-} seventeen22_header;
-
-/* 61883 CIP with SYT Field */
-typedef struct {
- uint16_t packet_channel:6;
- uint16_t format_tag:2;
- uint16_t app_control:4;
- uint16_t packet_tcode:4;
- uint16_t source_id:6;
- uint16_t reserved0:2;
- uint16_t data_block_size:8;
- uint16_t reserved1:2;
- uint16_t source_packet_header:1;
- uint16_t quadlet_padding_count:3;
- uint16_t fraction_number:2;
- uint16_t data_block_continuity:8;
- uint16_t format_id:6;
- uint16_t eoh:2;
- uint16_t format_dependent_field:8;
- uint16_t syt;
-} six1883_header;
-
-typedef struct {
- uint8_t label;
- uint8_t value[3];
-} six1883_sample;
-
-#define ETH_ALEN 6 /* Size of Ethernet address */
-
-typedef struct __attribute__ ((packed)) {
- /* Destination MAC address. */
- uint8_t h_dest [ETH_ALEN];
- /* Destination MAC address. */
- uint8_t h_source [ETH_ALEN];
- /* Protocol ID. */
- uint8_t h_protocol[2];
-} eth_header;
-
-typedef long double FrequencyRatio;
-
-typedef struct {
- int64_t ml_phoffset;
- int64_t ls_phoffset;
- FrequencyRatio ml_freqoffset;
- FrequencyRatio ls_freqoffset;
- uint64_t local_time;
-} gPtpTimeData;
-
-/*TODO fix this*/
-#ifndef false
-typedef enum { false = 0, true = 1 } bool;
+#ifndef __AVB_H__
+#define __AVB_H__
+
+#include "avb_gptp.h"
+#include "avb_srp.h"
+#include "avb_avtp.h"
+#ifndef AVB_FEATURE_IGB
+/* IGB has not been disabled, so assume it is enabled. */
+#define AVB_FEATURE_IGB 1
+#include "avb_igb.h"
#endif
-int pci_connect(device_t * igb_dev);
-
-int gptpinit(int *shm_fd, char **shm_map);
-int gptpdeinit(int *shm_fd, char **shm_map);
-int gptpgetdata(char *shm_mmap, gPtpTimeData *td);
-int gptpscaling(char *shm_mmap, gPtpTimeData *td);
-bool gptplocaltime(const gPtpTimeData * td, uint64_t* now_local);
-
-void avb_set_1722_cd_indicator(seventeen22_header *h1722, uint64_t cd_indicator);
-uint64_t avb_get_1722_cd_indicator(seventeen22_header *h1722);
-void avb_set_1722_subtype(seventeen22_header *h1722, uint64_t subtype);
-uint64_t avb_get_1722_subtype(seventeen22_header *h1722);
-void avb_set_1722_sid_valid(seventeen22_header *h1722, uint64_t sid_valid);
-uint64_t avb_get_1722_sid_valid(seventeen22_header *h1722);
-void avb_set_1722_version(seventeen22_header *h1722, uint64_t version);
-uint64_t avb_get_1722_version(seventeen22_header *h1722);
-void avb_set_1722_reset(seventeen22_header *h1722, uint64_t reset);
-uint64_t avb_get_1722_reset(seventeen22_header *h1722);
-void avb_set_1722_reserved0(seventeen22_header *h1722, uint64_t reserved0);
-uint64_t avb_get_1722_reserved0(seventeen22_header *h1722);
-void avb_set_1722_reserved1(seventeen22_header *h1722, uint64_t reserved1);
-uint64_t avb_get_1722_reserved1(seventeen22_header *h1722);
-void avb_set_1722_timestamp_uncertain(seventeen22_header *h1722, uint64_t timestamp_uncertain);
-uint64_t avb_get_1722_timestamp_uncertain(seventeen22_header *h1722);
-void avb_set_1722_timestamp(seventeen22_header *h1722, uint64_t timestamp);
-uint64_t avb_get_1722_reset(seventeen22_header *h1722);
-void avb_set_1722_reserved0(seventeen22_header *h1722, uint64_t reserved0);
-uint64_t avb_get_1722_reserved0(seventeen22_header *h1722);
-void avb_set_1722_gateway_valid(seventeen22_header *h1722, uint64_t gateway_valid);
-uint64_t avb_get_1722_gateway_valid(seventeen22_header *h1722);
-void avb_set_1722_timestamp_valid(seventeen22_header *h1722, uint64_t timestamp_valid);
-uint64_t avb_get_1722_timestamp_valid(seventeen22_header *h1722);
-void avb_set_1722_reserved1(seventeen22_header *h1722, uint64_t reserved1);
-uint64_t avb_get_1722_reserved1(seventeen22_header *h1722);
-void avb_set_1722_timestamp_uncertain(seventeen22_header *h1722, uint64_t timestamp_uncertain);
-uint64_t avb_get_1722_timestamp_uncertain(seventeen22_header *h1722);
-void avb_set_1722_timestamp(seventeen22_header *h1722, uint64_t timestamp);
-uint64_t avb_get_1722_timestamp(seventeen22_header *h1722);
-void avb_set_1722_gateway_info(seventeen22_header *h1722, uint64_t gateway_info);
-uint64_t avb_get_1722_gateway_info(seventeen22_header *h1722);
-void avb_set_1722_length(seventeen22_header *h1722, uint64_t length);
-uint64_t avb_get_1722_length(seventeen22_header *h1722);
-void avb_set_1722_stream_id(seventeen22_header *h1722, uint64_t stream_id);
-uint64_t avb_get_1722_stream_id(seventeen22_header *h1722);
-void avb_set_1722_seq_number(seventeen22_header *h1722, uint64_t seq_number);
-uint64_t avb_get_1722_seq_number(seventeen22_header *h1722);
-
-void avb_set_61883_packet_channel(six1883_header *h61883, uint16_t packet_channel);
-uint16_t avb_get_61883_length(six1883_header *h61883);
-void avb_set_61883_format_tag(six1883_header *h61883, uint16_t format_tag);
-uint16_t avb_get_61883_format_tag(six1883_header *h61883);
-void avb_set_61883_app_control(six1883_header *h61883, uint16_t app_control);
-uint16_t avb_get_61883_app_control(six1883_header *h61883);
-void avb_set_61883_packet_tcode(six1883_header *h61883, uint16_t packet_tcode);
-uint16_t avb_get_61883_packet_tcode(six1883_header *h61883);
-void avb_set_61883_source_id(six1883_header *h61883, uint16_t source_id);
-uint16_t avb_get_61883_source_id(six1883_header *h61883);
-void avb_set_61883_reserved0(six1883_header *h61883, uint16_t reserved0);
-uint16_t avb_get_61883_reserved0(six1883_header *h61883);
-void avb_set_61883_data_block_size(six1883_header *h61883, uint16_t data_block_size);
-uint16_t avb_get_61883_data_block_size(six1883_header *h61883);
-void avb_set_61883_reserved1(six1883_header *h61883, uint16_t reserved1);
-uint16_t avb_get_61883_reserved1(six1883_header *h61883);
-void avb_set_61883_source_packet_header(six1883_header *h61883, uint16_t source_packet_header);
-uint16_t avb_get_61883_source_packet_header(six1883_header *h61883);
-void avb_set_61883_quadlet_padding_count(six1883_header *h61883, uint16_t quadlet_padding_count);
-uint16_t avb_get_61883_quadlet_padding_count(six1883_header *h61883);
-void avb_set_61883_fraction_number(six1883_header *h61883, uint16_t fraction_number);
-uint16_t avb_get_61883_fraction_number(six1883_header *h61883);
-void avb_set_61883_data_block_continuity(six1883_header *h61883, uint16_t data_block_continuity);
-uint16_t avb_get_61883_data_block_continuity(six1883_header *h61883);
-void avb_set_61883_format_id(six1883_header *h61883, uint16_t format_id);
-uint16_t avb_get_61883_format_id(six1883_header *h61883);
-void avb_set_61883_eoh(six1883_header *h61883, uint16_t eoh);
-uint16_t avb_get_61883_eoh(six1883_header *h61883);
-void avb_set_61883_format_dependent_field(six1883_header *h61883, uint16_t format_dependent_field);
-uint16_t avb_get_61883_format_dependent_field(six1883_header *h61883);
-void avb_set_61883_syt(six1883_header *h61883, uint16_t syt);
-uint16_t avb_get_61883_syt(six1883_header *h61883);
-
-void * avb_create_packet(uint32_t payload_len);
-
-void avb_initialize_h1722_to_defaults(seventeen22_header *h1722);
-
-void avb_initialize_61883_to_defaults(six1883_header *h61883);
-
-int32_t avb_get_iface_mac_address(int8_t *iface, uint8_t *addr);
-
-int32_t
-avb_eth_header_set_mac(eth_header *ethernet_header, uint8_t *addr, int8_t *iface);
-
-void avb_1722_set_eth_type(eth_header *eth_header);
-
-#endif /* __AVBTP_H__ */
+#endif /* __AVB_H__ */