-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Seastone]: Adjusting Seastone's sfputil plugin to cope with new SfpU…
…til API. (#1022) There are multiple platforms that need to be transitioned to the new SfpUtilBase interface - I'm only taking care of Celestica-Seastone in this patch.
- Loading branch information
1 parent
ecd99c7
commit f681fd1
Showing
1 changed file
with
46 additions
and
13 deletions.
There are no files selected for viewing
59 changes: 46 additions & 13 deletions
59
device/celestica/x86_64-cel_seastone-r0/plugins/sfputil.py
100644 → 100755
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,58 @@ | ||
#!/usr/bin/env python | ||
# | ||
# Platform-specific SFP transceiver interface for SONiC | ||
# | ||
|
||
try: | ||
from sonic_sfp.sfputilbase import sfputilbase | ||
except ImportError, e: | ||
raise ImportError (str(e) + "- required module not found") | ||
import time | ||
from sonic_sfp.sfputilbase import SfpUtilBase | ||
except ImportError as e: | ||
raise ImportError("%s - required module not found" % str(e)) | ||
|
||
|
||
class sfputil(sfputilbase): | ||
"""Platform specific sfputil class""" | ||
class SfpUtil(SfpUtilBase): | ||
"""Platform-specific SfpUtil class""" | ||
|
||
port_start = 0 | ||
port_end = 31 | ||
ports_in_block = 32 | ||
PORT_START = 0 | ||
PORT_END = 31 | ||
PORTS_IN_BLOCK = 32 | ||
|
||
port_to_eeprom_mapping = {} | ||
_port_to_eeprom_mapping = {} | ||
qsfp_ports = range(0, PORTS_IN_BLOCK + 1) | ||
|
||
_qsfp_ports = range(0, ports_in_block + 1) | ||
@property | ||
def port_start(self): | ||
return self.PORT_START | ||
|
||
def __init__(self, port_num): | ||
@property | ||
def port_end(self): | ||
return self.PORT_END | ||
|
||
@property | ||
def qsfp_ports(self): | ||
return range(0, self.PORTS_IN_BLOCK + 1) | ||
|
||
@property | ||
def port_to_eeprom_mapping(self): | ||
return self._port_to_eeprom_mapping | ||
|
||
def __init__(self): | ||
# Override port_to_eeprom_mapping for class initialization | ||
eeprom_path = '/sys/bus/i2c/devices/i2c-{0}/{0}-0050/eeprom' | ||
for x in range(self.port_start, self.port_end + 1): | ||
|
||
for x in range(self.PORT_START, self.PORT_END + 1): | ||
self.port_to_eeprom_mapping[x] = eeprom_path.format( x + 26 ) | ||
sfputilbase.__init__(self, port_num) | ||
SfpUtilBase.__init__(self) | ||
|
||
def get_presence(self, port_num): | ||
raise NotImplementedError | ||
|
||
def get_low_power_mode(self, port_num): | ||
raise NotImplementedError | ||
|
||
def set_low_power_mode(self, port_num, lpmode): | ||
raise NotImplementedError | ||
|
||
def reset(self, port_num): | ||
raise NotImplementedError | ||
|