Skip to content

Commit c114574

Browse files
Russell Kingdavem330
authored andcommitted
net: phy: add PHY_INTERFACE_MODE_10GBASER
Recent discussion has revealed that the use of PHY_INTERFACE_MODE_10GKR is incorrect. Add a 10GBASE-R definition, document both the -R and -KR versions, and the fact that 10GKR was used incorrectly. Reviewed-by: Andrew Lunn <[email protected]> Signed-off-by: Russell King <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent aea6a1e commit c114574

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

Documentation/networking/phy.rst

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,24 @@ Some of the interface modes are described below:
267267
duplex, pause or other settings. This is dependent on the MAC and/or
268268
PHY behaviour.
269269

270+
``PHY_INTERFACE_MODE_10GBASER``
271+
This is the IEEE 802.3 Clause 49 defined 10GBASE-R protocol used with
272+
various different mediums. Please refer to the IEEE standard for a
273+
definition of this.
274+
275+
Note: 10GBASE-R is just one protocol that can be used with XFI and SFI.
276+
XFI and SFI permit multiple protocols over a single SERDES lane, and
277+
also defines the electrical characteristics of the signals with a host
278+
compliance board plugged into the host XFP/SFP connector. Therefore,
279+
XFI and SFI are not PHY interface types in their own right.
280+
281+
``PHY_INTERFACE_MODE_10GKR``
282+
This is the IEEE 802.3 Clause 49 defined 10GBASE-R with Clause 73
283+
autonegotiation. Please refer to the IEEE standard for further
284+
information.
285+
286+
Note: due to legacy usage, some 10GBASE-R usage incorrectly makes
287+
use of this definition.
270288

271289
Pause frames / flow control
272290
===========================

include/linux/phy.h

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,11 @@ typedef enum {
100100
PHY_INTERFACE_MODE_2500BASEX,
101101
PHY_INTERFACE_MODE_RXAUI,
102102
PHY_INTERFACE_MODE_XAUI,
103-
/* 10GBASE-KR, XFI, SFI - single lane 10G Serdes */
104-
PHY_INTERFACE_MODE_10GKR,
103+
/* 10GBASE-R, XFI, SFI - single lane 10G Serdes */
104+
PHY_INTERFACE_MODE_10GBASER,
105105
PHY_INTERFACE_MODE_USXGMII,
106+
/* 10GBASE-KR - with Clause 73 AN */
107+
PHY_INTERFACE_MODE_10GKR,
106108
PHY_INTERFACE_MODE_MAX,
107109
} phy_interface_t;
108110

@@ -176,10 +178,12 @@ static inline const char *phy_modes(phy_interface_t interface)
176178
return "rxaui";
177179
case PHY_INTERFACE_MODE_XAUI:
178180
return "xaui";
179-
case PHY_INTERFACE_MODE_10GKR:
180-
return "10gbase-kr";
181+
case PHY_INTERFACE_MODE_10GBASER:
182+
return "10gbase-r";
181183
case PHY_INTERFACE_MODE_USXGMII:
182184
return "usxgmii";
185+
case PHY_INTERFACE_MODE_10GKR:
186+
return "10gbase-kr";
183187
default:
184188
return "unknown";
185189
}

0 commit comments

Comments
 (0)