Utilize a code spell-checking tool to scan for and correct spelling errors in all files within the `subsys/net/lib` directory. Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
126 lines
3.1 KiB
C
126 lines
3.1 KiB
C
/*
|
|
* Copyright (c) 2024 BayLibre SAS
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/**
|
|
* @file transport.h
|
|
* @brief Function implementing abstraction over networking protocols.
|
|
*/
|
|
|
|
#ifndef ZEPHYR_INCLUDE_PTP_TRANSPORT_H_
|
|
#define ZEPHYR_INCLUDE_PTP_TRANSPORT_H_
|
|
|
|
#include <zephyr/net/net_ip.h>
|
|
|
|
#include "port.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define PTP_SOCKET_PORT_EVENT (319)
|
|
#define PTP_SOCKET_PORT_GENERAL (320)
|
|
|
|
/**
|
|
* @brief Values used to identify PTP Port socket based on used port.
|
|
*/
|
|
enum ptp_socket {
|
|
PTP_SOCKET_EVENT,
|
|
PTP_SOCKET_GENERAL,
|
|
PTP_SOCKET_CNT
|
|
};
|
|
|
|
/**
|
|
* @brief Types of PTP networking protocols.
|
|
*/
|
|
enum ptp_net_protocol {
|
|
PTP_NET_PROTOCOL_UDP_IPv4 = 1,
|
|
PTP_NET_PROTOCOL_UDP_IPv6,
|
|
PTP_NET_PROTOCOL_IEEE_802_3,
|
|
};
|
|
|
|
/**
|
|
* @brief Function handling opening specified transport network connection.
|
|
*
|
|
* @param[in] port Pointer to the PTP Port structure.
|
|
*
|
|
* @return 0 on success, negative otherwise.
|
|
*/
|
|
int ptp_transport_open(struct ptp_port *port);
|
|
|
|
/**
|
|
* @brief Function for closing specified transport network connection.
|
|
*
|
|
* @param[in] port Pointer to the PTP Port structure.
|
|
*
|
|
* @return 0 on success, negative otherwise.
|
|
*/
|
|
int ptp_transport_close(struct ptp_port *port);
|
|
|
|
/**
|
|
* @brief Function for sending PTP message using a specified transport. The message is sent
|
|
* to the default multicast address.
|
|
*
|
|
* @note Address specified in the message is ignored.
|
|
*
|
|
* @param[in] port Pointer to the PTP Port structure.
|
|
* @param[in] msg Pointer to the message to be send.
|
|
* @param[in] idx Index of the socket to be used to send message.
|
|
*
|
|
* @return Number of sent bytes.
|
|
*/
|
|
int ptp_transport_send(struct ptp_port *port, struct ptp_msg *msg, enum ptp_socket idx);
|
|
|
|
/**
|
|
* @brief Function for sending PTP message using a specified transport. The message is sent
|
|
* to the address provided with @ref ptp_msg message structure.
|
|
*
|
|
* @param[in] port Pointer to the PTP Port structure.
|
|
* @param[in] msg Pointer to the message to be send.
|
|
* @param[in] idx Index of the socket to be used to send message.
|
|
*
|
|
* @return Number of sent bytes.
|
|
*/
|
|
int ptp_transport_sendto(struct ptp_port *port, struct ptp_msg *msg, enum ptp_socket idx);
|
|
|
|
/**
|
|
* @brief Function for receiving a PTP message using a specified transport.
|
|
*
|
|
* @param[in] port Pointer to the PTP Port structure.
|
|
* @param[in] idx Index of the socket to be used to send message.
|
|
*
|
|
* @return
|
|
*/
|
|
int ptp_transport_recv(struct ptp_port *port, struct ptp_msg *msg, enum ptp_socket idx);
|
|
|
|
/**
|
|
* @brief Function for getting transport's protocol address.
|
|
*
|
|
* @param[in] port Pointer to the PTP Port structure.
|
|
* @param[in] addr Pointer to the buffer to store PTP Port's IP address.
|
|
*
|
|
* @return 0 if can't get IP address, otherwise length of the address.
|
|
*/
|
|
int ptp_transport_protocol_addr(struct ptp_port *port, uint8_t *addr);
|
|
|
|
/**
|
|
* @brief Function for getting transport's physical address.
|
|
*
|
|
* @param[in] port Pointer to the PTP Port structure.
|
|
*
|
|
* @return Pointer to the structure holding hardware link layer address.
|
|
*/
|
|
struct net_linkaddr *ptp_transport_physical_addr(struct ptp_port *port);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
#endif /* ZEPHYR_INCLUDE_PTP_TRANSPORT_H_ */
|