This patch places the internal port data structure into a common header
for use by the original BC and the new TC code.

Signed-off-by: Richard Cochran <richardcoch...@gmail.com>
---
 port.c         |  97 +-------------------------------------------
 port_private.h | 124 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 125 insertions(+), 96 deletions(-)
 create mode 100644 port_private.h

diff --git a/port.c b/port.c
index bc44017..b794ff5 100644
--- a/port.c
+++ b/port.c
@@ -32,6 +32,7 @@
 #include "msg.h"
 #include "phc.h"
 #include "port.h"
+#include "port_private.h"
 #include "print.h"
 #include "rtnl.h"
 #include "sk.h"
@@ -43,12 +44,6 @@
 #define ALLOWED_LOST_RESPONSES 3
 #define ANNOUNCE_SPAN 1
 
-enum syfu_state {
-       SF_EMPTY,
-       SF_HAVE_SYNC,
-       SF_HAVE_FUP,
-};
-
 enum syfu_event {
        SYNC_MISMATCH,
        SYNC_MATCH,
@@ -56,98 +51,8 @@ enum syfu_event {
        FUP_MATCH,
 };
 
-enum link_state {
-       LINK_DOWN  = (1<<0),
-       LINK_UP  = (1<<1),
-       LINK_STATE_CHANGED = (1<<3),
-       TS_LABEL_CHANGED  = (1<<4),
-};
-
-struct nrate_estimator {
-       double ratio;
-       tmv_t origin1;
-       tmv_t ingress1;
-       unsigned int max_count;
-       unsigned int count;
-       int ratio_valid;
-};
-
-struct port {
-       LIST_ENTRY(port) list;
-       char *name;
-       struct interface *iface;
-       struct clock *clock;
-       struct transport *trp;
-       enum timestamp_type timestamping;
-       struct fdarray fda;
-       int fault_fd;
-       int phc_index;
-
-       void (*dispatch)(struct port *p, enum fsm_event event, int mdiff);
-       enum fsm_event (*event)(struct port *p, int fd_index);
-
-       int jbod;
-       struct foreign_clock *best;
-       enum syfu_state syfu;
-       struct ptp_message *last_syncfup;
-       TAILQ_HEAD(delay_req, ptp_message) delay_req;
-       struct ptp_message *peer_delay_req;
-       struct ptp_message *peer_delay_resp;
-       struct ptp_message *peer_delay_fup;
-       int peer_portid_valid;
-       struct PortIdentity peer_portid;
-       struct {
-               UInteger16 announce;
-               UInteger16 delayreq;
-               UInteger16 sync;
-       } seqnum;
-       tmv_t peer_delay;
-       struct tsproc *tsproc;
-       int log_sync_interval;
-       struct nrate_estimator nrate;
-       unsigned int pdr_missing;
-       unsigned int multiple_seq_pdr_count;
-       unsigned int multiple_pdr_detected;
-       enum port_state (*state_machine)(enum port_state state,
-                                        enum fsm_event event, int mdiff);
-       int (*dscmp)(struct dataset *a, struct dataset *b);
-       /* portDS */
-       struct PortIdentity portIdentity;
-       enum port_state     state; /*portState*/
-       Integer64           asymmetry;
-       int                 asCapable;
-       Integer8            logMinDelayReqInterval;
-       TimeInterval        peerMeanPathDelay;
-       Integer8            logAnnounceInterval;
-       UInteger8           announceReceiptTimeout;
-       int                 announce_span;
-       UInteger8           syncReceiptTimeout;
-       UInteger8           transportSpecific;
-       Integer8            logSyncInterval;
-       Enumeration8        delayMechanism;
-       Integer8            logMinPdelayReqInterval;
-       UInteger32          neighborPropDelayThresh;
-       int                 follow_up_info;
-       int                 freq_est_interval;
-       int                 hybrid_e2e;
-       int                 match_transport_specific;
-       int                 min_neighbor_prop_delay;
-       int                 net_sync_monitor;
-       int                 path_trace_enabled;
-       Integer64           rx_timestamp_offset;
-       Integer64           tx_timestamp_offset;
-       enum link_state     link_status;
-       struct fault_interval flt_interval_pertype[FT_CNT];
-       enum fault_type     last_fault_type;
-       unsigned int        versionNumber; /*UInteger4*/
-       /* foreignMasterDS */
-       LIST_HEAD(fm, foreign_clock) foreign_masters;
-};
-
 #define portnum(p) (p->portIdentity.portNumber)
 
-#define NSEC2SEC 1000000000LL
-
 static void flush_delay_req(struct port *p);
 static int port_capable(struct port *p);
 static int port_is_ieee8021as(struct port *p);
diff --git a/port_private.h b/port_private.h
new file mode 100644
index 0000000..4fd6f1c
--- /dev/null
+++ b/port_private.h
@@ -0,0 +1,124 @@
+/**
+ * @file port_private.h
+ * @note Copyright (C) 2018 Richard Cochran <richardcoch...@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+#ifndef HAVE_PORT_PRIVATE_H
+#define HAVE_PORT_PRIVATE_H
+
+#include <sys/queue.h>
+
+#include "clock.h"
+#include "msg.h"
+#include "tmv.h"
+
+#define NSEC2SEC 1000000000LL
+
+enum syfu_state {
+       SF_EMPTY,
+       SF_HAVE_SYNC,
+       SF_HAVE_FUP,
+};
+
+enum link_state {
+       LINK_DOWN  = (1<<0),
+       LINK_UP  = (1<<1),
+       LINK_STATE_CHANGED = (1<<3),
+       TS_LABEL_CHANGED  = (1<<4),
+};
+
+struct nrate_estimator {
+       double ratio;
+       tmv_t origin1;
+       tmv_t ingress1;
+       unsigned int max_count;
+       unsigned int count;
+       int ratio_valid;
+};
+
+struct port {
+       LIST_ENTRY(port) list;
+       char *name;
+       struct interface *iface;
+       struct clock *clock;
+       struct transport *trp;
+       enum timestamp_type timestamping;
+       struct fdarray fda;
+       int fault_fd;
+       int phc_index;
+
+       void (*dispatch)(struct port *p, enum fsm_event event, int mdiff);
+       enum fsm_event (*event)(struct port *p, int fd_index);
+
+       int jbod;
+       struct foreign_clock *best;
+       enum syfu_state syfu;
+       struct ptp_message *last_syncfup;
+       TAILQ_HEAD(delay_req, ptp_message) delay_req;
+       struct ptp_message *peer_delay_req;
+       struct ptp_message *peer_delay_resp;
+       struct ptp_message *peer_delay_fup;
+       int peer_portid_valid;
+       struct PortIdentity peer_portid;
+       struct {
+               UInteger16 announce;
+               UInteger16 delayreq;
+               UInteger16 sync;
+       } seqnum;
+       tmv_t peer_delay;
+       struct tsproc *tsproc;
+       int log_sync_interval;
+       struct nrate_estimator nrate;
+       unsigned int pdr_missing;
+       unsigned int multiple_seq_pdr_count;
+       unsigned int multiple_pdr_detected;
+       enum port_state (*state_machine)(enum port_state state,
+                                        enum fsm_event event, int mdiff);
+       int (*dscmp)(struct dataset *a, struct dataset *b);
+       /* portDS */
+       struct PortIdentity portIdentity;
+       enum port_state     state; /*portState*/
+       Integer64           asymmetry;
+       int                 asCapable;
+       Integer8            logMinDelayReqInterval;
+       TimeInterval        peerMeanPathDelay;
+       Integer8            logAnnounceInterval;
+       UInteger8           announceReceiptTimeout;
+       int                 announce_span;
+       UInteger8           syncReceiptTimeout;
+       UInteger8           transportSpecific;
+       Integer8            logSyncInterval;
+       Enumeration8        delayMechanism;
+       Integer8            logMinPdelayReqInterval;
+       UInteger32          neighborPropDelayThresh;
+       int                 follow_up_info;
+       int                 freq_est_interval;
+       int                 hybrid_e2e;
+       int                 match_transport_specific;
+       int                 min_neighbor_prop_delay;
+       int                 net_sync_monitor;
+       int                 path_trace_enabled;
+       Integer64           rx_timestamp_offset;
+       Integer64           tx_timestamp_offset;
+       enum link_state     link_status;
+       struct fault_interval flt_interval_pertype[FT_CNT];
+       enum fault_type     last_fault_type;
+       unsigned int        versionNumber; /*UInteger4*/
+       /* foreignMasterDS */
+       LIST_HEAD(fm, foreign_clock) foreign_masters;
+};
+
+#endif
-- 
2.11.0


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to