Commit 5f94c943 authored by Stefan Sørensen's avatar Stefan Sørensen Committed by David S. Miller

ptp: Change ptp_class to a proper bitmask

Change the definition of PTP_CLASS_L2 to not have any bits overlapping with
the other defined protocol values, allowing the PTP_CLASS_* definitions to
be for simple filtering on packet type.
Signed-off-by: default avatarStefan Sørensen <stefan.sorensen@spectralink.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ccf6ee9a
...@@ -32,9 +32,9 @@ ...@@ -32,9 +32,9 @@
#define PTP_CLASS_VMASK 0x0f /* max protocol version is 15 */ #define PTP_CLASS_VMASK 0x0f /* max protocol version is 15 */
#define PTP_CLASS_IPV4 0x10 /* event in an IPV4 UDP packet */ #define PTP_CLASS_IPV4 0x10 /* event in an IPV4 UDP packet */
#define PTP_CLASS_IPV6 0x20 /* event in an IPV6 UDP packet */ #define PTP_CLASS_IPV6 0x20 /* event in an IPV6 UDP packet */
#define PTP_CLASS_L2 0x30 /* event in a L2 packet */ #define PTP_CLASS_L2 0x40 /* event in a L2 packet */
#define PTP_CLASS_PMASK 0x30 /* mask for the packet type field */ #define PTP_CLASS_PMASK 0x70 /* mask for the packet type field */
#define PTP_CLASS_VLAN 0x40 /* event in a VLAN tagged packet */ #define PTP_CLASS_VLAN 0x80 /* event in a VLAN tagged packet */
#define PTP_CLASS_V1_IPV4 (PTP_CLASS_V1 | PTP_CLASS_IPV4) #define PTP_CLASS_V1_IPV4 (PTP_CLASS_V1 | PTP_CLASS_IPV4)
#define PTP_CLASS_V1_IPV6 (PTP_CLASS_V1 | PTP_CLASS_IPV6) /* probably DNE */ #define PTP_CLASS_V1_IPV6 (PTP_CLASS_V1 | PTP_CLASS_IPV6) /* probably DNE */
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
#define PTP_CLASS_V2_IPV6 (PTP_CLASS_V2 | PTP_CLASS_IPV6) #define PTP_CLASS_V2_IPV6 (PTP_CLASS_V2 | PTP_CLASS_IPV6)
#define PTP_CLASS_V2_L2 (PTP_CLASS_V2 | PTP_CLASS_L2) #define PTP_CLASS_V2_L2 (PTP_CLASS_V2 | PTP_CLASS_L2)
#define PTP_CLASS_V2_VLAN (PTP_CLASS_V2 | PTP_CLASS_VLAN) #define PTP_CLASS_V2_VLAN (PTP_CLASS_V2 | PTP_CLASS_VLAN)
#define PTP_CLASS_L4 (PTP_CLASS_IPV4 | PTP_CLASS_IPV6)
#define PTP_EV_PORT 319 #define PTP_EV_PORT 319
#define PTP_GEN_BIT 0x08 /* indicates general message, if set in message type */ #define PTP_GEN_BIT 0x08 /* indicates general message, if set in message type */
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
* jneq #0x0, drop_ieee1588 ; for PTP_GEN_BIT and drop these * jneq #0x0, drop_ieee1588 ; for PTP_GEN_BIT and drop these
* ldh [18] ; reload payload * ldh [18] ; reload payload
* and #0xf ; mask PTP_CLASS_VMASK * and #0xf ; mask PTP_CLASS_VMASK
* or #0x70 ; PTP_CLASS_VLAN|PTP_CLASS_L2 * or #0xc0 ; PTP_CLASS_VLAN|PTP_CLASS_L2
* ret a ; return PTP class * ret a ; return PTP class
* *
* ; PTP over UDP over IPv4 over 802.1Q over Ethernet * ; PTP over UDP over IPv4 over 802.1Q over Ethernet
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
* jneq #319, drop_8021q_ipv4 ; is port PTP_EV_PORT ? * jneq #319, drop_8021q_ipv4 ; is port PTP_EV_PORT ?
* ldh [x + 26] ; load payload * ldh [x + 26] ; load payload
* and #0xf ; mask PTP_CLASS_VMASK * and #0xf ; mask PTP_CLASS_VMASK
* or #0x50 ; PTP_CLASS_VLAN|PTP_CLASS_IPV4 * or #0x90 ; PTP_CLASS_VLAN|PTP_CLASS_IPV4
* ret a ; return PTP class * ret a ; return PTP class
* drop_8021q_ipv4: ret #0x0 ; PTP_CLASS_NONE * drop_8021q_ipv4: ret #0x0 ; PTP_CLASS_NONE
* *
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
* jneq #319, drop_8021q_ipv6 ; is port PTP_EV_PORT ? * jneq #319, drop_8021q_ipv6 ; is port PTP_EV_PORT ?
* ldh [66] ; load payload * ldh [66] ; load payload
* and #0xf ; mask PTP_CLASS_VMASK * and #0xf ; mask PTP_CLASS_VMASK
* or #0x60 ; PTP_CLASS_VLAN|PTP_CLASS_IPV6 * or #0xa0 ; PTP_CLASS_VLAN|PTP_CLASS_IPV6
* ret a ; return PTP class * ret a ; return PTP class
* drop_8021q_ipv6: ret #0x0 ; PTP_CLASS_NONE * drop_8021q_ipv6: ret #0x0 ; PTP_CLASS_NONE
* *
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
* jneq #0x0, drop_ieee1588 ; for PTP_GEN_BIT and drop these * jneq #0x0, drop_ieee1588 ; for PTP_GEN_BIT and drop these
* ldh [14] ; reload payload * ldh [14] ; reload payload
* and #0xf ; mask PTP_CLASS_VMASK * and #0xf ; mask PTP_CLASS_VMASK
* or #0x30 ; PTP_CLASS_L2 * or #0x40 ; PTP_CLASS_L2
* ret a ; return PTP class * ret a ; return PTP class
* drop_ieee1588: ret #0x0 ; PTP_CLASS_NONE * drop_ieee1588: ret #0x0 ; PTP_CLASS_NONE
*/ */
...@@ -150,7 +150,7 @@ void __init ptp_classifier_init(void) ...@@ -150,7 +150,7 @@ void __init ptp_classifier_init(void)
{ 0x15, 0, 35, 0x00000000 }, { 0x15, 0, 35, 0x00000000 },
{ 0x28, 0, 0, 0x00000012 }, { 0x28, 0, 0, 0x00000012 },
{ 0x54, 0, 0, 0x0000000f }, { 0x54, 0, 0, 0x0000000f },
{ 0x44, 0, 0, 0x00000070 }, { 0x44, 0, 0, 0x000000c0 },
{ 0x16, 0, 0, 0x00000000 }, { 0x16, 0, 0, 0x00000000 },
{ 0x15, 0, 12, 0x00000800 }, { 0x15, 0, 12, 0x00000800 },
{ 0x30, 0, 0, 0x0000001b }, { 0x30, 0, 0, 0x0000001b },
...@@ -162,7 +162,7 @@ void __init ptp_classifier_init(void) ...@@ -162,7 +162,7 @@ void __init ptp_classifier_init(void)
{ 0x15, 0, 4, 0x0000013f }, { 0x15, 0, 4, 0x0000013f },
{ 0x48, 0, 0, 0x0000001a }, { 0x48, 0, 0, 0x0000001a },
{ 0x54, 0, 0, 0x0000000f }, { 0x54, 0, 0, 0x0000000f },
{ 0x44, 0, 0, 0x00000050 }, { 0x44, 0, 0, 0x00000090 },
{ 0x16, 0, 0, 0x00000000 }, { 0x16, 0, 0, 0x00000000 },
{ 0x06, 0, 0, 0x00000000 }, { 0x06, 0, 0, 0x00000000 },
{ 0x15, 0, 8, 0x000086dd }, { 0x15, 0, 8, 0x000086dd },
...@@ -172,7 +172,7 @@ void __init ptp_classifier_init(void) ...@@ -172,7 +172,7 @@ void __init ptp_classifier_init(void)
{ 0x15, 0, 4, 0x0000013f }, { 0x15, 0, 4, 0x0000013f },
{ 0x28, 0, 0, 0x00000042 }, { 0x28, 0, 0, 0x00000042 },
{ 0x54, 0, 0, 0x0000000f }, { 0x54, 0, 0, 0x0000000f },
{ 0x44, 0, 0, 0x00000060 }, { 0x44, 0, 0, 0x000000a0 },
{ 0x16, 0, 0, 0x00000000 }, { 0x16, 0, 0, 0x00000000 },
{ 0x06, 0, 0, 0x00000000 }, { 0x06, 0, 0, 0x00000000 },
{ 0x15, 0, 7, 0x000088f7 }, { 0x15, 0, 7, 0x000088f7 },
...@@ -181,7 +181,7 @@ void __init ptp_classifier_init(void) ...@@ -181,7 +181,7 @@ void __init ptp_classifier_init(void)
{ 0x15, 0, 4, 0x00000000 }, { 0x15, 0, 4, 0x00000000 },
{ 0x28, 0, 0, 0x0000000e }, { 0x28, 0, 0, 0x0000000e },
{ 0x54, 0, 0, 0x0000000f }, { 0x54, 0, 0, 0x0000000f },
{ 0x44, 0, 0, 0x00000030 }, { 0x44, 0, 0, 0x00000040 },
{ 0x16, 0, 0, 0x00000000 }, { 0x16, 0, 0, 0x00000000 },
{ 0x06, 0, 0, 0x00000000 }, { 0x06, 0, 0, 0x00000000 },
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment