Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
P
PPSi
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
50
Issues
50
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
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
PPSi
Commits
50650d32
Commit
50650d32
authored
Oct 21, 2014
by
Cesar Prados
Committed by
Alessandro Rubini
May 16, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pdelay/msg: add unpack pdelay functions
Signed-off-by:
C.Prados
<
c.prados@gsi.de
>
parent
e6aec3d0
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
55 additions
and
9 deletions
+55
-9
ieee1588_types.h
include/ppsi/ieee1588_types.h
+6
-7
ppsi.h
include/ppsi/ppsi.h
+7
-2
msg.c
proto-standard/msg.c
+42
-0
No files found.
include/ppsi/ieee1588_types.h
View file @
50650d32
...
...
@@ -179,22 +179,21 @@ typedef struct MsgDelayResp {
}
MsgDelayResp
;
/* PdelayReq Message (table 29, page 131) -- not used in ppsi */
struct
MsgPDelayReq
{
typedef
struct
MsgPDelayReq
{
Timestamp
originTimestamp
;
};
}
MsgPDelayReq
;
/* PdelayResp Message (table 30, page 131) -- not used in ppsi */
struct
MsgPDelayResp
{
typedef
struct
MsgPDelayResp
{
Timestamp
requestReceiptTimestamp
;
PortIdentity
requestingPortIdentity
;
};
}
MsgPDelayResp
;
/* PdelayRespFollowUp Message (table 31, page 132) -- not used in ppsi */
struct
MsgPDelayRespFollowUp
{
typedef
struct
MsgPDelayRespFollowUp
{
Timestamp
responseOriginTimestamp
;
PortIdentity
requestingPortIdentity
;
};
}
MsgPDelayRespFollowUp
;
/* Signaling Message (table 33, page 133) */
typedef
struct
MsgSignaling
{
...
...
include/ppsi/ppsi.h
View file @
50650d32
...
...
@@ -393,11 +393,16 @@ extern void msg_unpack_follow_up(void *buf, MsgFollowUp *flwup);
extern
void
msg_unpack_delay_req
(
void
*
buf
,
MsgDelayReq
*
delay_req
);
extern
void
msg_unpack_delay_resp
(
void
*
buf
,
MsgDelayResp
*
resp
);
/* pdelay */
extern
void
msg_unpack_pdelay_resp_follow_up
(
void
*
buf
,
MsgPDelayRespFollowUp
*
pdelay_resp_flwup
);
extern
void
msg_pack_pdelay_resp_follow_up
(
struct
pp_instance
*
ppi
,
MsgHeader
*
hdr
,
Timestamp
*
prec_orig_tstamp
);
extern
void
msg_pack_pdelay_resp
(
struct
pp_instance
*
ppi
,
MsgHeader
*
hdr
,
Timestamp
*
rcv_tstamp
);
extern
void
msg_unpack_pdelay_resp
(
void
*
buf
,
MsgPDelayResp
*
presp
);
extern
void
msg_pack_pdelay_resp
(
struct
pp_instance
*
ppi
,
MsgHeader
*
hdr
,
Timestamp
*
rcv_tstamp
);
extern
void
msg_unpack_pdelay_req
(
void
*
buf
,
MsgPDelayReq
*
pdelay_req
);
extern
void
msg_pack_pdelay_req
(
struct
pp_instance
*
ppi
,
Timestamp
*
orig_tstamp
);
...
...
proto-standard/msg.c
View file @
50650d32
...
...
@@ -262,6 +262,22 @@ void msg_unpack_follow_up(void *buf, MsgFollowUp *flwup)
htonl
(
*
(
UInteger32
*
)
(
buf
+
40
));
}
/* Unpack PDelay Resp FollowUp message from in buffer of ppi to msgtmp.follow */
void
msg_unpack_pdelay_resp_follow_up
(
void
*
buf
,
MsgPDelayRespFollowUp
*
pdelay_resp_flwup
)
{
pdelay_resp_flwup
->
responseOriginTimestamp
.
secondsField
.
msb
=
htons
(
*
(
UInteger16
*
)
(
buf
+
34
));
pdelay_resp_flwup
->
responseOriginTimestamp
.
secondsField
.
lsb
=
htonl
(
*
(
UInteger32
*
)
(
buf
+
36
));
pdelay_resp_flwup
->
responseOriginTimestamp
.
nanosecondsField
=
htonl
(
*
(
UInteger32
*
)
(
buf
+
40
));
memcpy
(
&
pdelay_resp_flwup
->
requestingPortIdentity
.
clockIdentity
,
(
buf
+
44
),
PP_CLOCK_IDENTITY_LENGTH
);
pdelay_resp_flwup
->
requestingPortIdentity
.
portNumber
=
htons
(
*
(
UInteger16
*
)
(
buf
+
52
));
}
/* pack DelayReq message into out buffer of ppi */
static
void
msg_pack_delay_req
(
struct
pp_instance
*
ppi
,
Timestamp
*
orig_tstamp
)
{
...
...
@@ -408,6 +424,17 @@ void msg_unpack_delay_req(void *buf, MsgDelayReq *delay_req)
htonl
(
*
(
UInteger32
*
)
(
buf
+
40
));
}
/* Unpack PDelayReq message from in buffer of ppi to msgtmp.req */
void
msg_unpack_pdelay_req
(
void
*
buf
,
MsgPDelayReq
*
pdelay_req
)
{
pdelay_req
->
originTimestamp
.
secondsField
.
msb
=
htons
(
*
(
UInteger16
*
)
(
buf
+
34
));
pdelay_req
->
originTimestamp
.
secondsField
.
lsb
=
htonl
(
*
(
UInteger32
*
)
(
buf
+
36
));
pdelay_req
->
originTimestamp
.
nanosecondsField
=
htonl
(
*
(
UInteger32
*
)
(
buf
+
40
));
}
/* Unpack delayResp message from IN buffer of ppi to msgtmp.presp */
void
msg_unpack_delay_resp
(
void
*
buf
,
MsgDelayResp
*
resp
)
{
...
...
@@ -423,6 +450,21 @@ void msg_unpack_delay_resp(void *buf, MsgDelayResp *resp)
htons
(
*
(
UInteger16
*
)
(
buf
+
52
));
}
/* Unpack PDelayResp message from IN buffer of ppi to msgtmp.presp */
void
msg_unpack_pdelay_resp
(
void
*
buf
,
MsgPDelayResp
*
presp
)
{
presp
->
requestReceiptTimestamp
.
secondsField
.
msb
=
htons
(
*
(
UInteger16
*
)
(
buf
+
34
));
presp
->
requestReceiptTimestamp
.
secondsField
.
lsb
=
htonl
(
*
(
UInteger32
*
)
(
buf
+
36
));
presp
->
requestReceiptTimestamp
.
nanosecondsField
=
htonl
(
*
(
UInteger32
*
)
(
buf
+
40
));
memcpy
(
&
presp
->
requestingPortIdentity
.
clockIdentity
,
(
buf
+
44
),
PP_CLOCK_IDENTITY_LENGTH
);
presp
->
requestingPortIdentity
.
portNumber
=
htons
(
*
(
UInteger16
*
)
(
buf
+
52
));
}
const
char
const
*
pp_msg_names
[
16
]
=
{
[
PPM_SYNC
]
=
"sync"
,
[
PPM_DELAY_REQ
]
=
"delay_req"
,
...
...
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