components/ptp/patches/03-add_hybrid_mode.patch
author Prakash Jalan <Prakash.Jalan@oracle.com>
Wed, 01 Jul 2015 09:07:33 -0700
changeset 4581 021d774e32e1
permissions -rw-r--r--
21020796 Add "RO" to res1 field of auth_attr.d files in ptp 21020163 html help files in PTP for RBAC profiles and authorizations must go 21108112 Add support for Hybrid mode 21108146 Example for setprop config/use_hw should use true in man page
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4581
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     1
Add support for hybrid mode of operation. An user can provide -U option
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     2
to ptpd to have hybrid mode enabled. ptpd version higher than 2.2.0 may have
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     3
hybrid mode enabled by default in which case this patch should be removed.
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     4
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     5
diff -r 1a6514e3570d src/Makefile
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     6
--- a/src/Makefile	Fri Apr 03 18:07:43 2015 -0700
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     7
+++ b/src/Makefile	Fri Apr 03 21:12:39 2015 -0700
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     8
@@ -43,7 +43,7 @@
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     9
 #CFLAGS += -DDBG_SIGUSR2_CHANGE_DEBUG
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    10
 #CFLAGS += -DPTPD_FULL_OPTIONS
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    11
 
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    12
-#CFLAGS += -DPTP_EXPERIMENTAL
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    13
+CFLAGS += -DPTP_EXPERIMENTAL
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    14
 
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    15
 LDFLAGS+= -lm -lrt
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    16
 LDFLAGS += -lnsl -lsocket -lv12n -m64
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    17
diff -r 1a6514e3570d src/datatypes.h
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    18
--- a/src/datatypes.h	Fri Apr 03 18:07:43 2015 -0700
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    19
+++ b/src/datatypes.h	Fri Apr 03 21:12:39 2015 -0700
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    20
@@ -473,6 +473,11 @@
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    21
 
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    22
   Statistics statistics;
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    23
   
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    24
+#ifdef PTP_EXPERIMENTAL
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    25
+	Integer32 MasterAddr;                           // used for hybrid mode, when receiving announces
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    26
+	Integer32 LastSlaveAddr;                        // used for hybrid mode, when receiving delayreqs
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    27
+#endif
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    28
+
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    29
 } PtpClock;
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    30
 
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    31
 /**
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    32
diff -r 1a6514e3570d src/dep/datatypes_dep.h
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    33
--- a/src/dep/datatypes_dep.h	Fri Apr 03 18:07:43 2015 -0700
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    34
+++ b/src/dep/datatypes_dep.h	Fri Apr 03 21:12:39 2015 -0700
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    35
@@ -133,6 +133,12 @@
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    36
 
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    37
   /* used by IGMP refresh */
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    38
   struct in_addr interfaceAddr;
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    39
+
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    40
+#ifdef PTP_EXPERIMENTAL
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    41
+  /* used for Hybrid mode */
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    42
+  Integer32 lastRecvAddr;
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    43
+#endif
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    44
+
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    45
 } NetPath;
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    46
 
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    47
 #endif /*DATATYPES_DEP_H_*/
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    48
diff -r 1a6514e3570d src/dep/msg.c
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    49
--- a/src/dep/msg.c	Fri Apr 03 18:07:43 2015 -0700
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    50
+++ b/src/dep/msg.c	Fri Apr 03 21:12:39 2015 -0700
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    51
@@ -40,6 +40,10 @@
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    52
 
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    53
 #include "../ptpd.h"
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    54
 
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    55
+#ifdef PTP_EXPERIMENTAL
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    56
+extern RunTimeOpts rtOpts; 
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    57
+#endif
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    58
+
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    59
 /*Unpack Header from IN buffer to msgTmpHeader field */
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    60
 void 
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    61
 msgUnpackHeader(Octet * buf, MsgHeader * header)
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    62
@@ -328,6 +332,12 @@
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    63
 	/* Table 19 */
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    64
 	*(UInteger16 *) (buf + 2) = flip16(DELAY_RESP_LENGTH);
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    65
 	*(UInteger8 *) (buf + 4) = header->domainNumber;
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    66
+
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    67
+#ifdef PTP_EXPERIMENTAL
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    68
+	if(rtOpts.do_hybrid_mode)    
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    69
+		*(char *)(buf + 6) |= PTP_UNICAST;
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    70
+#endif
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    71
+
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    72
 	memset((buf + 8), 0, 8);
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    73
 
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    74
 	/* Copy correctionField of PdelayReqMessage */
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    75
diff -r 1a6514e3570d src/dep/startup.c
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    76
--- a/src/dep/startup.c	Fri Apr 03 18:07:43 2015 -0700
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    77
+++ b/src/dep/startup.c	Fri Apr 03 21:12:39 2015 -0700
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    78
@@ -662,7 +662,7 @@
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    79
 #endif
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    80
 */
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    81
 
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    82
-   const char *getopt_string = "?HgGWb:cCf:ST:dDPR:xO:tM:a:w:u:ehzl:o:i:n:N:y:m:v:r:s:p:q:Y:BjLV:XZKF";
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    83
+   const char *getopt_string = "?HgGWb:cCf:ST:dDPR:xO:tM:a:w:u:ehzl:o:i:n:N:y:m:v:r:s:p:q:Y:BjLV:XZKFU";
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    84
 
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    85
   /* parse command line arguments */
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    86
   while ((c = getopt(argc, argv, getopt_string)) != -1) {
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    87
--- a/src/ptpd2.8	2015-05-18 14:05:20.934031705 -0700
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    88
+++ b/src/ptpd2.8	2015-05-18 13:59:54.195214157 -0700
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    89
@@ -27,6 +27,7 @@
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    90
 [-b NAME]
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    91
 [-K]
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    92
 [-u ADDRESS]
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    93
+[-U]
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    94
 [-e]
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    95
 [-h]
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    96
 [-l NUMBER,NUMBER]
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    97
@@ -204,6 +205,9 @@
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    98
 .B \-u ADDRESS
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    99
 also send uni-cast to ADDRESS
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   100
 .TP
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   101
+.B \-U
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   102
+enable hybrid mode which uses both unicast and multicast
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   103
+.TP
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   104
 .B \-e
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   105
 run in ethernet mode (currently unimplemented)
021d774e32e1 21020796 Add "RO" to res1 field of auth_attr.d files in ptp
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   106
 .TP