libptpmgmt 2.0
libptpmgmt library that provides the functionality of linuxptp pmc
Loading...
Searching...
No Matches
sock.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: LGPL-3.0-or-later
2 SPDX-FileCopyrightText: Copyright © 2023 Erez Geva <ErezGeva2@gmail.com> */
3
12#ifndef __PTPMGMT_C_SOCK_H
13#define __PTPMGMT_C_SOCK_H
14
15#include "name.h"
16#ifdef __PTPMGMT_HAVE_SYS_TYPES_H
17#include <sys/types.h>
18#else
20typedef long ssize_t;
22#endif /* __PTPMGMT_HAVE_SYS_TYPES_H */
23#include "c/cfg.h"
24#include "c/ptp.h"
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
31typedef struct ptpmgmt_sk_t *ptpmgmt_sk;
32
34typedef const struct ptpmgmt_sk_t *const_ptpmgmt_sk;
35
42 void *_this;
49 void (*free)(ptpmgmt_sk sk);
50
55 void (*close)(ptpmgmt_sk sk);
61 bool (*init)(ptpmgmt_sk sk);
71 bool (*send)(const_ptpmgmt_sk sk, const void *msg, size_t len);
82 ssize_t (*rcv)(const_ptpmgmt_sk sk, void *buf, size_t bufSize, bool block);
111 bool (*poll)(const_ptpmgmt_sk sk, uint64_t timeout_ms);
122 bool (*tpoll)(const_ptpmgmt_sk sk, uint64_t *timeout_ms);
128 const char *(*getPeerAddress)(const_ptpmgmt_sk sk);
141 bool (*setPeerAddress)(ptpmgmt_sk sk, const char *string);
150 bool (*setPeerAddressAbstract)(ptpmgmt_sk sk, const char *string);
160 const char *section);
166 const char *(*getSelfAddress)(const_ptpmgmt_sk sk);
182 bool (*setSelfAddress)(ptpmgmt_sk sk, const char *string);
194 bool (*setSelfAddressAbstract)(ptpmgmt_sk sk, const char *string);
205 bool (*setDefSelfAddress)(ptpmgmt_sk sk, const char *rootBase,
206 const char *useDef);
211 const char *(*getHomeDir)();
222 bool (*sendTo)(const_ptpmgmt_sk sk, const void *msg, size_t len,
223 const char *addrStr);
236 bool (*sendToA)(const_ptpmgmt_sk sk, const void *msg, size_t len,
237 const char *addrStr);
252 ssize_t (*rcvFrom)(ptpmgmt_sk sk, void *buf, size_t bufSize, char *from,
253 size_t *fromSize, bool block);
265 ssize_t (*rcvFromA)(ptpmgmt_sk sk, void *buf, size_t bufSize, bool block);
274 const char *(*getLastFrom)(const_ptpmgmt_sk sk);
290 bool (*setIfUsingName)(ptpmgmt_sk sk, const char *ifName);
300 bool (*setIfUsingIndex)(ptpmgmt_sk sk, int ifIndex);
325 const_ptpmgmt_cfg cfg, const char *section);
340 const_ptpmgmt_cfg cfg, const char *section);
351 bool (*setUdpTtl)(ptpmgmt_sk sk, uint8_t udp_ttl);
365 const char *section);
375 bool (*setScope)(ptpmgmt_sk sk, uint8_t udp6_scope);
388 const char *section);
400 bool (*setPtpDstMacStr)(ptpmgmt_sk sk, const char *string);
411 bool (*setPtpDstMac)(ptpmgmt_sk sk, const void *ptp_dst_mac,
412 size_t len);
425 const char *section);
437 bool (*setSocketPriority)(ptpmgmt_sk sk, uint8_t socket_priority);
450 const char *section);
451};
452
458
463 ptpmgmt_SockUnix,
464 ptpmgmt_SockIp4,
465 ptpmgmt_SockIp6,
466 ptpmgmt_SockRaw,
467};
468
476
477#ifdef __cplusplus
478}
479#endif
480
481#endif /* __PTPMGMT_C_SOCK_H */
C interface to configuration class.
C interface to network and PHC classes.
ptpmgmt_sk ptpmgmt_sk_alloc(enum ptpmgmt_socket_class type)
const char * ptpmgmt_sk_getHomeDir()
struct ptpmgmt_sk_t * ptpmgmt_sk
Definition sock.h:31
ptpmgmt_socket_class
Definition sock.h:462
const struct ptpmgmt_sk_t * const_ptpmgmt_sk
Definition sock.h:34
Define name space.
Definition cfg.h:44
Definition ptp.h:42
Definition sock.h:40
bool(* setPeerAddress)(ptpmgmt_sk sk, const char *string)
Definition sock.h:141
bool(* setPeerAddressAbstract)(ptpmgmt_sk sk, const char *string)
Definition sock.h:150
bool(* setUdpTtlCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:364
int(* getFd)(const_ptpmgmt_sk sk)
Definition sock.h:91
bool(* setPtpDstMac)(ptpmgmt_sk sk, const void *ptp_dst_mac, size_t len)
Definition sock.h:411
bool(* isSelfAddressAbstract)(const_ptpmgmt_sk sk)
Definition sock.h:172
bool(* setPtpDstMacCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:424
void(* close)(ptpmgmt_sk sk)
Definition sock.h:55
bool(* setSocketPriorityCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:449
bool(* setSelfAddress)(ptpmgmt_sk sk, const char *string)
Definition sock.h:182
bool(* init)(ptpmgmt_sk sk)
Definition sock.h:61
bool(* setIfUsingName)(ptpmgmt_sk sk, const char *ifName)
Definition sock.h:290
bool(* setAll)(ptpmgmt_sk sk, const_ptpmgmt_ifInfo ifObj, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:324
bool(* setPeerAddressCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:159
ssize_t(* rcvFrom)(ptpmgmt_sk sk, void *buf, size_t bufSize, char *from, size_t *fromSize, bool block)
Definition sock.h:252
bool(* setAllInit)(ptpmgmt_sk sk, const_ptpmgmt_ifInfo ifObj, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:339
bool(* isLastFromAbstract)(const_ptpmgmt_sk sk)
Definition sock.h:280
bool(* send)(const_ptpmgmt_sk sk, const void *msg, size_t len)
Definition sock.h:71
bool(* setDefSelfAddress)(ptpmgmt_sk sk, const char *rootBase, const char *useDef)
Definition sock.h:205
bool(* sendTo)(const_ptpmgmt_sk sk, const void *msg, size_t len, const char *addrStr)
Definition sock.h:222
bool(* isPeerAddressAbstract)(const_ptpmgmt_sk sk)
Definition sock.h:134
bool(* tpoll)(const_ptpmgmt_sk sk, uint64_t *timeout_ms)
Definition sock.h:122
bool(* sendToA)(const_ptpmgmt_sk sk, const void *msg, size_t len, const char *addrStr)
Definition sock.h:236
ssize_t(* rcv)(const_ptpmgmt_sk sk, void *buf, size_t bufSize, bool block)
Definition sock.h:82
bool(* setScope)(ptpmgmt_sk sk, uint8_t udp6_scope)
Definition sock.h:375
bool(* setPtpDstMacStr)(ptpmgmt_sk sk, const char *string)
Definition sock.h:400
bool(* setScopeCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:387
bool(* poll)(const_ptpmgmt_sk sk, uint64_t timeout_ms)
Definition sock.h:111
bool(* setIf)(ptpmgmt_sk sk, const_ptpmgmt_ifInfo ifObj)
Definition sock.h:310
int(* fileno)(const_ptpmgmt_sk sk)
Definition sock.h:100
bool(* setUdpTtl)(ptpmgmt_sk sk, uint8_t udp_ttl)
Definition sock.h:351
bool(* setSelfAddressAbstract)(ptpmgmt_sk sk, const char *string)
Definition sock.h:194
bool(* setSocketPriority)(ptpmgmt_sk sk, uint8_t socket_priority)
Definition sock.h:437
void(* free)(ptpmgmt_sk sk)
Definition sock.h:49
bool(* setIfUsingIndex)(ptpmgmt_sk sk, int ifIndex)
Definition sock.h:300
ssize_t(* rcvFromA)(ptpmgmt_sk sk, void *buf, size_t bufSize, bool block)
Definition sock.h:265