Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
White Rabbit Switch - Software
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
84
Issues
84
List
Board
Labels
Milestones
Merge Requests
4
Merge Requests
4
CI / CD
CI / CD
Pipelines
Schedules
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
White Rabbit Switch - Software
Commits
68222d7e
Commit
68222d7e
authored
Jun 25, 2018
by
Jean-Claude BAU
Committed by
Adam Wujek
Apr 10, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
HA - Servo DS moved on each pp_instance
Conflicts: userspace/ppsi userspace/tools/wrs_dump_shmem.c
parent
8044c8cc
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
47 additions
and
47 deletions
+47
-47
ptpd_exports.h
userspace/include/ptpd_exports.h
+2
-1
ppsi
userspace/ppsi
+1
-1
snmp_shmem.c
userspace/snmpd/snmp_shmem.c
+9
-6
snmp_shmem.h
userspace/snmpd/snmp_shmem.h
+1
-1
wrsPtpDataTable.c
userspace/snmpd/wrsPtpDataTable.c
+26
-28
wr_mon.c
userspace/tools/wr_mon.c
+1
-1
hal_ports.c
userspace/wrsw_hal/hal_ports.c
+7
-9
No files found.
userspace/include/ptpd_exports.h
View file @
68222d7e
...
...
@@ -4,7 +4,8 @@
#include <stdio.h>
#include <stdlib.h>
#define PTPDEXP_COMMAND_TRACKING 1
#define PTPDEXP_COMMAND_WR_TRACKING 1
#define PTPDEXP_COMMAND_L1SYNC_TRACKING 2
extern
int
ptpdexp_cmd
(
int
cmd
,
int
value
);
...
...
ppsi
@
f7c9ea65
Subproject commit
c0a1b72beea9ed5ad9a9f16856aa3900ba9fa5c6
Subproject commit
f7c9ea6583b60b726a9f33251de7fb8a969b809d
userspace/snmpd/snmp_shmem.c
View file @
68222d7e
...
...
@@ -10,7 +10,8 @@ int hal_nports_local;
/* PPSI */
struct
wrs_shm_head
*
ppsi_head
;
static
struct
pp_globals
*
ppg
;
struct
wr_servo_state
*
ppsi_servo
;
struct
pp_servo
*
ppsi_servo
;
struct
wr_servo_state
*
ppsi_wr_servo
;
struct
pp_instance
*
ppsi_ppi
;
int
*
ppsi_ppi_nlinks
;
...
...
@@ -111,11 +112,13 @@ static int init_shm_ppsi(void)
}
ppg
=
(
void
*
)
ppsi_head
+
ppsi_head
->
data_off
;
ppsi_servo
=
wrs_shm_follow
(
ppsi_head
,
ppg
->
global_ext_data
);
if
(
!
ppsi_servo
)
{
snmp_log
(
LOG_ERR
,
"Cannot follow ppsi_servo in shmem.
\n
"
);
return
4
;
}
/* TODO JCB Servo is part of an instance now */
ppsi_servo
=
NULL
;
// ppsi_servo = wrs_shm_follow(ppsi_head, ppg->servo);
// if (!ppsi_servo) {
// snmp_log(LOG_ERR, "Cannot follow ppsi_servo in shmem.\n");
// return 4;
// }
ppsi_ppi
=
wrs_shm_follow
(
ppsi_head
,
ppg
->
pp_instances
);
if
(
!
ppsi_ppi
)
{
...
...
userspace/snmpd/snmp_shmem.h
View file @
68222d7e
...
...
@@ -15,7 +15,7 @@ extern int hal_nports_local;
/* PPSI */
extern
struct
wrs_shm_head
*
ppsi_head
;
extern
struct
wr_servo_state
*
ppsi_servo
;
extern
struct
pp_servo
*
ppsi_servo
;
extern
struct
pp_instance
*
ppsi_ppi
;
extern
int
*
ppsi_ppi_nlinks
;
...
...
userspace/snmpd/wrsPtpDataTable.c
View file @
68222d7e
...
...
@@ -83,34 +83,32 @@ time_t wrsPtpDataTable_data_fill(unsigned int *n_rows)
while
(
1
)
{
ii
=
wrs_shm_seqbegin
(
ppsi_head
);
strncpy
(
wrsPtpDataTable_array
[
0
].
wrsPtpServoState
,
ppsi_servo
->
servo_state_name
,
sizeof
(
ppsi_servo
->
servo_state_name
));
wrsPtpDataTable_array
[
0
].
wrsPtpServoStateN
=
ppsi_servo
->
state
;
/* Keep value 0 for Not available */
wrsPtpDataTable_array
[
0
].
wrsPtpPhaseTracking
=
1
+
ppsi_servo
->
tracking_enabled
;
wrsPtpDataTable_array
[
0
].
wrsPtpRTT
=
ppsi_servo
->
picos_mu
;
wrsPtpDataTable_array
[
0
].
wrsPtpClockOffsetPs
=
ppsi_servo
->
offset
;
wrsPtpDataTable_array
[
0
].
wrsPtpClockOffsetPsHR
=
int_saturate
(
ppsi_servo
->
offset
);
wrsPtpDataTable_array
[
0
].
wrsPtpSkew
=
int_saturate
(
ppsi_servo
->
skew
);
wrsPtpDataTable_array
[
0
].
wrsPtpLinkLength
=
(
uint32_t
)(
ppsi_servo
->
delta_ms
/
1e12
*
300e6
/
1
.
55
);
wrsPtpDataTable_array
[
0
].
wrsPtpServoUpdates
=
ppsi_servo
->
update_count
;
wrsPtpDataTable_array
[
0
].
wrsPtpDeltaTxM
=
ppsi_servo
->
delta_tx_m
;
wrsPtpDataTable_array
[
0
].
wrsPtpDeltaRxM
=
ppsi_servo
->
delta_rx_m
;
wrsPtpDataTable_array
[
0
].
wrsPtpDeltaTxS
=
ppsi_servo
->
delta_tx_s
;
wrsPtpDataTable_array
[
0
].
wrsPtpDeltaRxS
=
ppsi_servo
->
delta_rx_s
;
wrsPtpDataTable_array
[
0
].
wrsPtpServoStateErrCnt
=
ppsi_servo
->
n_err_state
;
wrsPtpDataTable_array
[
0
].
wrsPtpClockOffsetErrCnt
=
ppsi_servo
->
n_err_offset
;
wrsPtpDataTable_array
[
0
].
wrsPtpRTTErrCnt
=
ppsi_servo
->
n_err_delta_rtt
;
wrsPtpDataTable_array
[
0
].
wrsPtpServoUpdateTime
=
ppsi_servo
->
update_time
.
secs
*
1000
*
1000
*
1000
+
(
ppsi_servo
->
update_time
.
scaled_nsecs
>>
16
);
//TODO JCB : Search servo instance to display
// strncpy(wrsPtpDataTable_array[0].wrsPtpServoState,
// ppsi_servo->servo_state_name,
// sizeof(ppsi_servo->servo_state_name));
// wrsPtpDataTable_array[0].wrsPtpServoStateN = ppsi_servo->state;
// /* Keep value 0 for Not available */
// wrsPtpDataTable_array[0].wrsPtpPhaseTracking = 0; //JCB TODO 1 + ppsi_servo->tracking_enabled;
// wrsPtpDataTable_array[0].wrsPtpRTT = 0; //JCB TODO ppsi_servo->picos_mu;
// wrsPtpDataTable_array[0].wrsPtpClockOffsetPs = pp_time_to_picos(&ppsi_servo->offsetFromMaster);
// wrsPtpDataTable_array[0].wrsPtpClockOffsetPsHR =
// int_saturate(wrsPtpDataTable_array[0].wrsPtpClockOffsetPs);
// wrsPtpDataTable_array[0].wrsPtpSkew = 0; //JCB TODO int_saturate(ppsi_servo->skew);
// wrsPtpDataTable_array[0].wrsPtpLinkLength =
// (uint32_t)(pp_time_to_picos(&ppsi_servo->delayMS)/1e12 * 300e6 / 1.55);
// wrsPtpDataTable_array[0].wrsPtpServoUpdates =
// ppsi_servo->update_count;
// wrsPtpDataTable_array[0].wrsPtpDeltaTxM = 0;//JCB TODO ppsi_servo->delta_txm_ps;
// wrsPtpDataTable_array[0].wrsPtpDeltaRxM = 0;//JCB TODO ppsi_servo->delta_rxm_ps;
// wrsPtpDataTable_array[0].wrsPtpDeltaTxS = 0;//JCB TODO ppsi_servo->delta_txs_ps;
// wrsPtpDataTable_array[0].wrsPtpDeltaRxS = 0;//JCB TODO ppsi_servo->delta_rxs_ps;
// wrsPtpDataTable_array[0].wrsPtpServoStateErrCnt = 0;//JCB TODO ppsi_servo->n_err_state;
// wrsPtpDataTable_array[0].wrsPtpClockOffsetErrCnt = 0;//JCB TODO ppsi_servo->n_err_offset;
// wrsPtpDataTable_array[0].wrsPtpRTTErrCnt = 0;//JCB TODO ppsi_servo->n_err_delta_rtt;
// wrsPtpDataTable_array[0].wrsPtpServoUpdateTime = 0;
// //JCB TODO ppsi_servo->update_time.secs * 1000 * 1000 * 1000
// //JCB TODO + (ppsi_servo->update_time.scaled_nsecs >> 16);
retries
++
;
if
(
retries
>
100
)
{
snmp_log
(
LOG_ERR
,
"%s: too many retries to read PPSI
\n
"
,
...
...
userspace/tools/wr_mon.c
View file @
68222d7e
...
...
@@ -307,7 +307,7 @@ int read_servo(void){
struct
pp_servo
*
ppsi_servo
;
/* Copy common data */
if
(
!
(
ppsi_servo
=
wrs_shm_follow
(
ppsi_head
,
pp
g
->
servo
))
)
if
(
!
(
ppsi_servo
=
wrs_shm_follow
(
ppsi_head
,
pp
i
->
servo
))
)
break
;
memcpy
(
&
servo
->
servo_snapshot
,
ppsi_servo
,
sizeof
(
struct
pp_servo
));
...
...
userspace/wrsw_hal/hal_ports.c
View file @
68222d7e
...
...
@@ -43,7 +43,6 @@ typedef struct {
}
inst_servo_t
;
static
inst_servo_t
servo
;
struct
pp_servo
*
ppsi_servo
;
extern
struct
hal_shmem_header
*
hal_shmem
;
extern
struct
wrs_shm_head
*
hal_shmem_hdr
;
...
...
@@ -992,6 +991,12 @@ static int read_servo(void){
/* we are only interested on instances in SLAVE state */
if
(
ppi
->
state
==
PPS_SLAVE
)
{
/* ppsi-servo points to instance servo data */
struct
pp_servo
*
ppsi_servo
=
wrs_shm_follow
(
ppsi_head
,
ppi
->
servo
);
if
(
!
ppsi_servo
)
{
return
-
1
;
/* Cannot access servo data */
}
while
(
1
)
{
unsigned
ii
=
wrs_shm_seqbegin
(
ppsi_head
);
unsigned
retries
=
0
;
...
...
@@ -1017,7 +1022,7 @@ static int try_open_ppsi_shmem(void)
int
ret
;
static
int
open_error
;
if
(
ppsi_
servo
&&
ppsi_
instances
)
{
if
(
ppsi_instances
)
{
/* shmem already opened */
return
1
;
}
...
...
@@ -1050,13 +1055,6 @@ static int try_open_ppsi_shmem(void)
}
ppg
=
(
void
*
)
ppsi_head
+
ppsi_head
->
data_off
;
/* ppsi-servo points to the common servo data */
ppsi_servo
=
wrs_shm_follow
(
ppsi_head
,
ppg
->
servo
);
if
(
!
ppsi_servo
)
{
pr_error
(
"Cannot follow ppsi_servo in shmem.
\n
"
);
return
0
;
}
ppsi_instances
=
wrs_shm_follow
(
ppsi_head
,
ppg
->
pp_instances
);
if
(
!
ppsi_instances
)
{
pr_error
(
"Cannot follow pp_instances in shmem.
\n
"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment