mirror of
https://github.com/Telecominfraproject/OpenNetworkLinux.git
synced 2025-12-26 01:37:04 +00:00
Merge branch 'master' of github.com:opencomputeproject/OpenNetworkLinux into roth_onlp
This commit is contained in:
@@ -7,5 +7,4 @@ include $(ONL)/make/config.mk
|
||||
export TOOLCHAIN := x86_64-linux-gnu
|
||||
export ARCH := amd64
|
||||
export UARCH := AMD64
|
||||
|
||||
|
||||
export __$(ARCH)__ := 1
|
||||
|
||||
@@ -7,3 +7,4 @@ include $(ONL)/make/config.mk
|
||||
export TOOLCHAIN := aarch64-linux-gnu
|
||||
export ARCH := arm64
|
||||
export UARCH := ARM64
|
||||
export __$(ARCH)__ := 1
|
||||
|
||||
@@ -7,3 +7,4 @@ include $(ONL)/make/config.mk
|
||||
export TOOLCHAIN := arm-linux-gnueabi
|
||||
export ARCH := armel
|
||||
export UARCH := ARMEL
|
||||
export __$(ARCH)__ := 1
|
||||
|
||||
@@ -7,5 +7,4 @@ include $(ONL)/make/config.mk
|
||||
export TOOLCHAIN := powerpc-linux-gnu
|
||||
export ARCH := powerpc
|
||||
export UARCH := PPC
|
||||
|
||||
|
||||
export __$(ARCH)__ := 1
|
||||
|
||||
@@ -236,7 +236,7 @@ blkid_find_gpt_boot() {
|
||||
}
|
||||
|
||||
installer_fixup_gpt() {
|
||||
local buf dat sts dev
|
||||
local buf dat sts dev do_recover
|
||||
|
||||
buf=$(mktemp -u -t sgdisk-XXXXXX)
|
||||
|
||||
@@ -264,32 +264,79 @@ installer_fixup_gpt() {
|
||||
fi
|
||||
test -b "$dev" || return 0
|
||||
|
||||
# see if it's a clean GPT partition table
|
||||
if sgdisk -p "$dev" > "$buf" 2>&1; then
|
||||
sts=0
|
||||
do_recover=
|
||||
|
||||
# simple validation using sgdisk
|
||||
if test "$do_recover"; then
|
||||
:
|
||||
else
|
||||
sts=$?
|
||||
fi
|
||||
if test $sts -ne 0; then
|
||||
cat "$buf" 1>&2
|
||||
rm -f "$buf"
|
||||
installer_say "Cannot reliably get GPT partition table"
|
||||
return 1
|
||||
fi
|
||||
if sgdisk -p "$dev" > "$buf" 2>&1; then
|
||||
sts=0
|
||||
else
|
||||
sts=$?
|
||||
fi
|
||||
if test $sts -ne 0; then
|
||||
cat "$buf" 1>&2
|
||||
rm -f "$buf"
|
||||
installer_say "Cannot reliably get GPT partition table"
|
||||
return 1
|
||||
fi
|
||||
|
||||
case $(cat "$buf") in
|
||||
*Caution*|*Warning*)
|
||||
cat $buf 1>&2
|
||||
installer_say "Found issues with the GPT partition table"
|
||||
rm -f "$buf"
|
||||
;;
|
||||
*)
|
||||
installer_say "Found a clean GPT partition table"
|
||||
rm -f "$buf"
|
||||
return 0
|
||||
case $(cat "$buf") in
|
||||
*Caution*|*Warning*)
|
||||
cat $buf 1>&2
|
||||
installer_say "Found issues with the GPT partition table"
|
||||
do_recover=1
|
||||
rm -f "$buf"
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
# more thorough validation
|
||||
if test "$do_recover"; then
|
||||
:
|
||||
else
|
||||
|
||||
local inp
|
||||
inp=$(mktemp -u -t sgdisk-XXXXXX)
|
||||
cat > "$inp" <<-END
|
||||
x
|
||||
r
|
||||
v
|
||||
q
|
||||
END
|
||||
if gdisk "$dev" < "$inp" > "$buf" 2>&1; then
|
||||
sts=0
|
||||
else
|
||||
sts=$?
|
||||
fi
|
||||
rm -f "$inp"
|
||||
if test $sts -ne 0; then
|
||||
cat "$buf" 1>&2
|
||||
rm -f "$buf"
|
||||
installer_say "Cannot reliably verify GPT partition table"
|
||||
return 1
|
||||
fi
|
||||
|
||||
case $(cat "$buf") in
|
||||
*Caution*|*Warning*|*Problem:*)
|
||||
cat $buf 1>&2
|
||||
installer_say "Found issues with the GPT partition table"
|
||||
do_recover=1
|
||||
rm -f "$buf"
|
||||
;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
if test "$do_recover"; then
|
||||
:
|
||||
else
|
||||
installer_say "Found a clean GPT partition table"
|
||||
rm -f "$buf"
|
||||
return 0
|
||||
fi
|
||||
installer_say "Attempting to correct the GPT partition table"
|
||||
|
||||
# this is the simple method; gdisk/sfgdisk will correct
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
############################################################
|
||||
# <bsn.cl fy=2014 v=onl>
|
||||
#
|
||||
# Copyright 2014, 2015 Big Switch Networks, Inc.
|
||||
#
|
||||
#
|
||||
# Copyright 2014, 2015 Big Switch Networks, Inc.
|
||||
#
|
||||
# Licensed under the Eclipse Public License, Version 1.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
#
|
||||
# http://www.eclipse.org/legal/epl-v10.html
|
||||
#
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
# either express or implied. See the License for the specific
|
||||
# language governing permissions and limitations under the
|
||||
# License.
|
||||
#
|
||||
#
|
||||
# </bsn.cl>
|
||||
############################################################
|
||||
#
|
||||
@@ -24,6 +24,5 @@
|
||||
############################################################
|
||||
|
||||
onlp_AUTO_DEFS := module/auto/onlp.yml
|
||||
onlp_AUTO_DIRS := module/inc/onlp module/src
|
||||
onlp_AUTO_DIRS := module/inc/onlp module/src module/py
|
||||
include $(BUILDER)/auto.mk
|
||||
|
||||
|
||||
@@ -231,6 +231,17 @@ psu_caps: &psu_caps
|
||||
- PIN : (1 << 7)
|
||||
- POUT : (1 << 8)
|
||||
|
||||
# SFP Controls
|
||||
sfp_controls: &sfp_controls
|
||||
- RESET
|
||||
- RESET_STATE
|
||||
- RX_LOS
|
||||
- TX_FAULT
|
||||
- TX_DISABLE
|
||||
- TX_DISABLE_CHANNEL
|
||||
- LP_MODE
|
||||
- POWER_OVERRIDE
|
||||
|
||||
definitions:
|
||||
cdefs:
|
||||
ONLP_CONFIG_HEADER:
|
||||
@@ -255,25 +266,13 @@ definitions:
|
||||
members: *thermal_threshold
|
||||
onlp_sfp_control:
|
||||
tag: sfp1
|
||||
members:
|
||||
- RESET
|
||||
- RESET_STATE
|
||||
- RX_LOS
|
||||
- TX_FAULT
|
||||
- TX_DISABLE
|
||||
- TX_DISABLE_CHANNEL
|
||||
- LP_MODE
|
||||
- POWER_OVERRIDE
|
||||
members: *sfp_controls
|
||||
|
||||
onlp_sfp_control_flag:
|
||||
tag: sfp2
|
||||
members:
|
||||
- RESET : (1 << ONLP_SFP_CONTROL_RESET)
|
||||
- RESET_STATE : ( 1 << ONLP_SFP_CONTROL_RESET_STATE )
|
||||
- RX_LOS : ( 1 << ONLP_SFP_CONTROL_RX_LOS )
|
||||
- TX_FAULT : ( 1 << ONLP_SFP_CONTROL_TX_FAULT )
|
||||
- TX_DISABLE : ( 1 << ONLP_SFP_CONTROL_TX_DISABLE )
|
||||
- LP_MODE : ( 1 << ONLP_SFP_CONTROL_LP_MODE )
|
||||
- POWER_OVERRIDE : ( 1 << ONLP_SFP_CONTROL_POWER_OVERRIDE )
|
||||
members: *sfp_controls
|
||||
flags: True
|
||||
|
||||
onlp_fan_mode:
|
||||
tag: fan
|
||||
members: *fan_modes
|
||||
@@ -302,6 +301,8 @@ definitions:
|
||||
tag: psu
|
||||
members: *psu_caps
|
||||
|
||||
pyenum: *enums
|
||||
|
||||
portingmacro:
|
||||
ONLP:
|
||||
macros:
|
||||
|
||||
@@ -59,6 +59,7 @@ typedef enum onlp_status_e {
|
||||
*/
|
||||
int onlp_init(void);
|
||||
|
||||
int onlp_denit(void);
|
||||
|
||||
/**
|
||||
* @brief Dump the current platform data.
|
||||
|
||||
@@ -51,13 +51,14 @@ typedef enum onlp_sfp_control_e {
|
||||
/* <auto.start.enum(tag:sfp2).define> */
|
||||
/** onlp_sfp_control_flag */
|
||||
typedef enum onlp_sfp_control_flag_e {
|
||||
ONLP_SFP_CONTROL_FLAG_RESET = (1 << ONLP_SFP_CONTROL_RESET),
|
||||
ONLP_SFP_CONTROL_FLAG_RESET_STATE = ( 1 << ONLP_SFP_CONTROL_RESET_STATE ),
|
||||
ONLP_SFP_CONTROL_FLAG_RX_LOS = ( 1 << ONLP_SFP_CONTROL_RX_LOS ),
|
||||
ONLP_SFP_CONTROL_FLAG_TX_FAULT = ( 1 << ONLP_SFP_CONTROL_TX_FAULT ),
|
||||
ONLP_SFP_CONTROL_FLAG_TX_DISABLE = ( 1 << ONLP_SFP_CONTROL_TX_DISABLE ),
|
||||
ONLP_SFP_CONTROL_FLAG_LP_MODE = ( 1 << ONLP_SFP_CONTROL_LP_MODE ),
|
||||
ONLP_SFP_CONTROL_FLAG_POWER_OVERRIDE = ( 1 << ONLP_SFP_CONTROL_POWER_OVERRIDE ),
|
||||
ONLP_SFP_CONTROL_FLAG_RESET = (1 << 0),
|
||||
ONLP_SFP_CONTROL_FLAG_RESET_STATE = (1 << 1),
|
||||
ONLP_SFP_CONTROL_FLAG_RX_LOS = (1 << 2),
|
||||
ONLP_SFP_CONTROL_FLAG_TX_FAULT = (1 << 3),
|
||||
ONLP_SFP_CONTROL_FLAG_TX_DISABLE = (1 << 4),
|
||||
ONLP_SFP_CONTROL_FLAG_TX_DISABLE_CHANNEL = (1 << 5),
|
||||
ONLP_SFP_CONTROL_FLAG_LP_MODE = (1 << 6),
|
||||
ONLP_SFP_CONTROL_FLAG_POWER_OVERRIDE = (1 << 7),
|
||||
} onlp_sfp_control_flag_t;
|
||||
/* <auto.end.enum(tag:sfp2).define> */
|
||||
|
||||
|
||||
169
packages/base/any/onlp/src/onlp/module/py/enums.py
Normal file
169
packages/base/any/onlp/src/onlp/module/py/enums.py
Normal file
@@ -0,0 +1,169 @@
|
||||
#!/usr/bin/python
|
||||
############################################################
|
||||
#
|
||||
# These are all ONLP Enumeration values
|
||||
# for use with the Python API.
|
||||
#
|
||||
############################################################
|
||||
class Enumeration(object):
|
||||
@classmethod
|
||||
def name(klass, value):
|
||||
for (k, v) in klass.__dict__.iteritems():
|
||||
if v == value:
|
||||
return k
|
||||
return None
|
||||
|
||||
# <auto.start.pyenum(ALL).define>
|
||||
class ONLP_FAN_CAPS(Enumeration):
|
||||
B2F = (1 << 0)
|
||||
F2B = (1 << 1)
|
||||
SET_RPM = (1 << 2)
|
||||
SET_PERCENTAGE = (1 << 3)
|
||||
GET_RPM = (1 << 4)
|
||||
GET_PERCENTAGE = (1 << 5)
|
||||
|
||||
|
||||
class ONLP_FAN_DIR(Enumeration):
|
||||
B2F = 0
|
||||
F2B = 1
|
||||
|
||||
|
||||
class ONLP_FAN_MODE(Enumeration):
|
||||
OFF = 0
|
||||
SLOW = 1
|
||||
NORMAL = 2
|
||||
FAST = 3
|
||||
MAX = 4
|
||||
|
||||
|
||||
class ONLP_FAN_STATUS(Enumeration):
|
||||
PRESENT = (1 << 0)
|
||||
FAILED = (1 << 1)
|
||||
B2F = (1 << 2)
|
||||
F2B = (1 << 3)
|
||||
|
||||
|
||||
class ONLP_LED_CAPS(Enumeration):
|
||||
ON_OFF = (1 << 0)
|
||||
CHAR = (1 << 1)
|
||||
RED = (1 << 10)
|
||||
RED_BLINKING = (1 << 11)
|
||||
ORANGE = (1 << 12)
|
||||
ORANGE_BLINKING = (1 << 13)
|
||||
YELLOW = (1 << 14)
|
||||
YELLOW_BLINKING = (1 << 15)
|
||||
GREEN = (1 << 16)
|
||||
GREEN_BLINKING = (1 << 17)
|
||||
BLUE = (1 << 18)
|
||||
BLUE_BLINKING = (1 << 19)
|
||||
PURPLE = (1 << 20)
|
||||
PURPLE_BLINKING = (1 << 21)
|
||||
AUTO = (1 << 22)
|
||||
AUTO_BLINKING = (1 << 23)
|
||||
|
||||
|
||||
class ONLP_LED_MODE(Enumeration):
|
||||
OFF = 0
|
||||
ON = 1
|
||||
BLINKING = 2
|
||||
RED = 10
|
||||
RED_BLINKING = 11
|
||||
ORANGE = 12
|
||||
ORANGE_BLINKING = 13
|
||||
YELLOW = 14
|
||||
YELLOW_BLINKING = 15
|
||||
GREEN = 16
|
||||
GREEN_BLINKING = 17
|
||||
BLUE = 18
|
||||
BLUE_BLINKING = 19
|
||||
PURPLE = 20
|
||||
PURPLE_BLINKING = 21
|
||||
AUTO = 22
|
||||
AUTO_BLINKING = 23
|
||||
|
||||
|
||||
class ONLP_LED_STATUS(Enumeration):
|
||||
PRESENT = (1 << 0)
|
||||
FAILED = (1 << 1)
|
||||
ON = (1 << 2)
|
||||
|
||||
|
||||
class ONLP_OID_TYPE(Enumeration):
|
||||
SYS = 1
|
||||
THERMAL = 2
|
||||
FAN = 3
|
||||
PSU = 4
|
||||
LED = 5
|
||||
MODULE = 6
|
||||
RTC = 7
|
||||
|
||||
|
||||
class ONLP_PSU_CAPS(Enumeration):
|
||||
AC = (1 << 0)
|
||||
DC12 = (1 << 1)
|
||||
DC48 = (1 << 2)
|
||||
VIN = (1 << 3)
|
||||
VOUT = (1 << 4)
|
||||
IIN = (1 << 5)
|
||||
IOUT = (1 << 6)
|
||||
PIN = (1 << 7)
|
||||
POUT = (1 << 8)
|
||||
|
||||
|
||||
class ONLP_PSU_STATUS(Enumeration):
|
||||
PRESENT = (1 << 0)
|
||||
FAILED = (1 << 1)
|
||||
UNPLUGGED = (1 << 2)
|
||||
|
||||
|
||||
class ONLP_SFP_CONTROL(Enumeration):
|
||||
RESET = 0
|
||||
RESET_STATE = 1
|
||||
RX_LOS = 2
|
||||
TX_FAULT = 3
|
||||
TX_DISABLE = 4
|
||||
TX_DISABLE_CHANNEL = 5
|
||||
LP_MODE = 6
|
||||
POWER_OVERRIDE = 7
|
||||
|
||||
|
||||
class ONLP_SFP_CONTROL_FLAG(Enumeration):
|
||||
RESET = (1 << 0)
|
||||
RESET_STATE = (1 << 1)
|
||||
RX_LOS = (1 << 2)
|
||||
TX_FAULT = (1 << 3)
|
||||
TX_DISABLE = (1 << 4)
|
||||
TX_DISABLE_CHANNEL = (1 << 5)
|
||||
LP_MODE = (1 << 6)
|
||||
POWER_OVERRIDE = (1 << 7)
|
||||
|
||||
|
||||
class ONLP_STATUS(Enumeration):
|
||||
OK = 0
|
||||
E_GENERIC = -1
|
||||
E_UNSUPPORTED = -10
|
||||
E_MISSING = -11
|
||||
E_INVALID = -12
|
||||
E_INTERNAL = -13
|
||||
E_PARAM = -14
|
||||
E_I2C = -15
|
||||
|
||||
|
||||
class ONLP_THERMAL_CAPS(Enumeration):
|
||||
GET_TEMPERATURE = (1 << 0)
|
||||
GET_WARNING_THRESHOLD = (1 << 1)
|
||||
GET_ERROR_THRESHOLD = (1 << 2)
|
||||
GET_SHUTDOWN_THRESHOLD = (1 << 3)
|
||||
|
||||
|
||||
class ONLP_THERMAL_STATUS(Enumeration):
|
||||
PRESENT = (1 << 0)
|
||||
FAILED = (1 << 1)
|
||||
|
||||
|
||||
class ONLP_THERMAL_THRESHOLD(Enumeration):
|
||||
WARNING_DEFAULT = 45000
|
||||
ERROR_DEFAULT = 55000
|
||||
SHUTDOWN_DEFAULT = 60000
|
||||
|
||||
# <auto.end.pyenum(ALL).define>
|
||||
@@ -1,21 +1,21 @@
|
||||
/************************************************************
|
||||
* <bsn.cl fy=2014 v=onl>
|
||||
*
|
||||
* Copyright 2014, 2015 Big Switch Networks, Inc.
|
||||
*
|
||||
*
|
||||
* Copyright 2014, 2015 Big Switch Networks, Inc.
|
||||
*
|
||||
* Licensed under the Eclipse Public License, Version 1.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific
|
||||
* language governing permissions and limitations under the
|
||||
* License.
|
||||
*
|
||||
*
|
||||
* </bsn.cl>
|
||||
************************************************************
|
||||
*
|
||||
@@ -62,3 +62,15 @@ onlp_init(void)
|
||||
onlp_thermal_init();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
onlp_denit(void)
|
||||
{
|
||||
#if ONLP_CONFIG_INCLUDE_API_LOCK == 1
|
||||
onlp_api_lock_denit();
|
||||
#endif
|
||||
|
||||
onlp_json_denit();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -798,6 +798,7 @@ aim_map_si_t onlp_sfp_control_flag_map[] =
|
||||
{ "RX_LOS", ONLP_SFP_CONTROL_FLAG_RX_LOS },
|
||||
{ "TX_FAULT", ONLP_SFP_CONTROL_FLAG_TX_FAULT },
|
||||
{ "TX_DISABLE", ONLP_SFP_CONTROL_FLAG_TX_DISABLE },
|
||||
{ "TX_DISABLE_CHANNEL", ONLP_SFP_CONTROL_FLAG_TX_DISABLE_CHANNEL },
|
||||
{ "LP_MODE", ONLP_SFP_CONTROL_FLAG_LP_MODE },
|
||||
{ "POWER_OVERRIDE", ONLP_SFP_CONTROL_FLAG_POWER_OVERRIDE },
|
||||
{ NULL, 0 }
|
||||
@@ -810,6 +811,7 @@ aim_map_si_t onlp_sfp_control_flag_desc_map[] =
|
||||
{ "None", ONLP_SFP_CONTROL_FLAG_RX_LOS },
|
||||
{ "None", ONLP_SFP_CONTROL_FLAG_TX_FAULT },
|
||||
{ "None", ONLP_SFP_CONTROL_FLAG_TX_DISABLE },
|
||||
{ "None", ONLP_SFP_CONTROL_FLAG_TX_DISABLE_CHANNEL },
|
||||
{ "None", ONLP_SFP_CONTROL_FLAG_LP_MODE },
|
||||
{ "None", ONLP_SFP_CONTROL_FLAG_POWER_OVERRIDE },
|
||||
{ NULL, 0 }
|
||||
|
||||
@@ -45,6 +45,12 @@ onlp_api_lock_init(void)
|
||||
api_sem__ = os_sem_create_flags(1, OS_SEM_CREATE_F_TRUE_RELATIVE_TIMEOUTS);
|
||||
}
|
||||
|
||||
void
|
||||
onlp_api_lock_denit(void)
|
||||
{
|
||||
os_sem_destroy(api_sem__);
|
||||
}
|
||||
|
||||
void
|
||||
onlp_api_lock(const char* api)
|
||||
{
|
||||
@@ -71,6 +77,12 @@ onlp_api_lock_init(void)
|
||||
onlp_shlock_global_init();
|
||||
}
|
||||
|
||||
void
|
||||
onlp_api_lock_denit(void)
|
||||
{
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
void
|
||||
onlp_api_lock(const char* api)
|
||||
{
|
||||
@@ -119,5 +131,3 @@ onlp_api_lock_test(void)
|
||||
}
|
||||
|
||||
#endif /* ONLP_CONFIG_INCLUDE_API_LOCK */
|
||||
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
* @brief Initialize the ONLP API lock infrastructure.
|
||||
*/
|
||||
void onlp_api_lock_init();
|
||||
void onlp_api_lock_denit();
|
||||
|
||||
/**
|
||||
* @brief Take the ONLP API lock.
|
||||
|
||||
@@ -53,6 +53,8 @@ sff_module_types: &sff_module_types
|
||||
desc: "100GBASE-LR4"
|
||||
- 100G_CWDM4:
|
||||
desc: "100G-CWDM4"
|
||||
- 100G_PSM4:
|
||||
desc: "100G-PSM4"
|
||||
- 40G_BASE_CR4:
|
||||
desc: "40GBASE-CR4"
|
||||
- 40G_BASE_SR4:
|
||||
|
||||
@@ -144,6 +144,8 @@
|
||||
(idprom[192] == SFF8636_CC192_100GE_LR4)
|
||||
#define SFF8636_MEDIA_100GE_CWDM4(idprom) \
|
||||
(idprom[192] == SFF8636_CC192_100GE_CWDM4)
|
||||
#define SFF8636_MEDIA_100GE_PSM4(idprom) \
|
||||
(idprom[192] == SFF8636_CC192_100GE_PSM4)
|
||||
#define SFF8636_MEDIA_100GE_CR4(idprom) \
|
||||
(idprom[192] == SFF8636_CC192_100GE_CR4)
|
||||
#define SFF8636_MEDIA_25GE_CR_S(idprom) \
|
||||
|
||||
@@ -102,6 +102,7 @@ typedef enum sff_module_type_e {
|
||||
SFF_MODULE_TYPE_100G_BASE_SR4,
|
||||
SFF_MODULE_TYPE_100G_BASE_LR4,
|
||||
SFF_MODULE_TYPE_100G_CWDM4,
|
||||
SFF_MODULE_TYPE_100G_PSM4,
|
||||
SFF_MODULE_TYPE_40G_BASE_CR4,
|
||||
SFF_MODULE_TYPE_40G_BASE_SR4,
|
||||
SFF_MODULE_TYPE_40G_BASE_LR4,
|
||||
@@ -141,6 +142,7 @@ typedef enum sff_module_type_e {
|
||||
"100G_BASE_SR4", \
|
||||
"100G_BASE_LR4", \
|
||||
"100G_CWDM4", \
|
||||
"100G_PSM4", \
|
||||
"40G_BASE_CR4", \
|
||||
"40G_BASE_SR4", \
|
||||
"40G_BASE_LR4", \
|
||||
|
||||
@@ -12,6 +12,7 @@ SFF_MEDIA_TYPE_ENTRY(100G_BASE_CR4, 100GBASE-CR4)
|
||||
SFF_MEDIA_TYPE_ENTRY(100G_BASE_SR4, 100GBASE-SR4)
|
||||
SFF_MEDIA_TYPE_ENTRY(100G_BASE_LR4, 100GBASE-LR4)
|
||||
SFF_MEDIA_TYPE_ENTRY(100G_CWDM4, 100G-CWDM4)
|
||||
SFF_MEDIA_TYPE_ENTRY(100G_PSM4, 100G-PSM4)
|
||||
SFF_MEDIA_TYPE_ENTRY(40G_BASE_CR4, 40GBASE-CR4)
|
||||
SFF_MEDIA_TYPE_ENTRY(40G_BASE_SR4, 40GBASE-SR4)
|
||||
SFF_MEDIA_TYPE_ENTRY(40G_BASE_LR4, 40GBASE-LR4)
|
||||
@@ -57,6 +58,7 @@ SFF_MODULE_TYPE_ENTRY(100G_BASE_CR4, 100GBASE-CR4)
|
||||
SFF_MODULE_TYPE_ENTRY(100G_BASE_SR4, 100GBASE-SR4)
|
||||
SFF_MODULE_TYPE_ENTRY(100G_BASE_LR4, 100GBASE-LR4)
|
||||
SFF_MODULE_TYPE_ENTRY(100G_CWDM4, 100G-CWDM4)
|
||||
SFF_MODULE_TYPE_ENTRY(100G_PSM4, 100G-PSM4)
|
||||
SFF_MODULE_TYPE_ENTRY(40G_BASE_CR4, 40GBASE-CR4)
|
||||
SFF_MODULE_TYPE_ENTRY(40G_BASE_SR4, 40GBASE-SR4)
|
||||
SFF_MODULE_TYPE_ENTRY(40G_BASE_LR4, 40GBASE-LR4)
|
||||
|
||||
@@ -76,6 +76,11 @@ sff_module_type_get(const uint8_t* eeprom)
|
||||
&& SFF8636_MEDIA_100GE_CWDM4(eeprom))
|
||||
return SFF_MODULE_TYPE_100G_CWDM4;
|
||||
|
||||
if (SFF8636_MODULE_QSFP28(eeprom)
|
||||
&& SFF8636_MEDIA_EXTENDED(eeprom)
|
||||
&& SFF8636_MEDIA_100GE_PSM4(eeprom))
|
||||
return SFF_MODULE_TYPE_100G_PSM4;
|
||||
|
||||
if (SFF8436_MODULE_QSFP_PLUS_V2(eeprom)
|
||||
&& SFF8436_MEDIA_40GE_CR4(eeprom))
|
||||
return SFF_MODULE_TYPE_40G_BASE_CR4;
|
||||
@@ -241,6 +246,7 @@ sff_media_type_get(sff_module_type_t mt)
|
||||
case SFF_MODULE_TYPE_100G_BASE_SR4:
|
||||
case SFF_MODULE_TYPE_100G_BASE_LR4:
|
||||
case SFF_MODULE_TYPE_100G_CWDM4:
|
||||
case SFF_MODULE_TYPE_100G_PSM4:
|
||||
case SFF_MODULE_TYPE_40G_BASE_SR4:
|
||||
case SFF_MODULE_TYPE_40G_BASE_LR4:
|
||||
case SFF_MODULE_TYPE_40G_BASE_LM4:
|
||||
@@ -286,6 +292,7 @@ sff_module_caps_get(sff_module_type_t mt, uint32_t *caps)
|
||||
case SFF_MODULE_TYPE_100G_BASE_LR4:
|
||||
case SFF_MODULE_TYPE_100G_BASE_CR4:
|
||||
case SFF_MODULE_TYPE_100G_CWDM4:
|
||||
case SFF_MODULE_TYPE_100G_PSM4:
|
||||
*caps |= SFF_MODULE_CAPS_F_100G;
|
||||
return 0;
|
||||
|
||||
@@ -677,6 +684,7 @@ sff_info_init(sff_info_t* info, sff_module_type_t mt,
|
||||
case SFF_MODULE_TYPE_100G_BASE_SR4:
|
||||
case SFF_MODULE_TYPE_100G_BASE_LR4:
|
||||
case SFF_MODULE_TYPE_100G_CWDM4:
|
||||
case SFF_MODULE_TYPE_100G_PSM4:
|
||||
info->sfp_type = SFF_SFP_TYPE_QSFP28;
|
||||
info->media_type = SFF_MEDIA_TYPE_FIBER;
|
||||
info->caps = SFF_MODULE_CAPS_F_100G;
|
||||
|
||||
@@ -61,6 +61,10 @@
|
||||
#define SFF_100G_CWDM4_PROPERTIES \
|
||||
SFF_SFP_TYPE_QSFP28, "QSFP28", SFF_MODULE_TYPE_100G_CWDM4, "100G-CWDM4", SFF_MEDIA_TYPE_FIBER, "Fiber", SFF_MODULE_CAPS_F_100G
|
||||
|
||||
#define SFF_100G_PSM4_PROPERTIES \
|
||||
SFF_SFP_TYPE_QSFP28, "QSFP28", SFF_MODULE_TYPE_100G_PSM4, "100G-PSM4", SFF_MEDIA_TYPE_FIBER, "Fiber", SFF_MODULE_CAPS_F_100G
|
||||
|
||||
|
||||
static sff_db_entry_t sff_database__[] =
|
||||
{
|
||||
|
||||
@@ -1413,6 +1417,35 @@ static sff_db_entry_t sff_database__[] =
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
{
|
||||
.eeprom = {
|
||||
0x11, 0x07, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0xb8, 0x00, 0x00, 0x85, 0x0b, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x45, 0x26, 0x44, 0xf0, 0x45, 0x63,
|
||||
0x45, 0x3a, 0x1d, 0xee, 0x1d, 0x88, 0x23, 0x8a, 0x24, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x11, 0xcc, 0x0c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x00, 0x02, 0x00,
|
||||
0x00, 0x00, 0x00, 0x40, 0x49, 0x4e, 0x4e, 0x4f, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x20, 0x20, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x00, 0x44, 0x7c, 0x7f, 0x54, 0x52, 0x2d, 0x56, 0x43, 0x31, 0x33, 0x54,
|
||||
0x2d, 0x4e, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x30, 0x31, 0x66, 0x58, 0x07, 0xd0, 0x46, 0x33,
|
||||
0x07, 0x07, 0xff, 0xda, 0x49, 0x4e, 0x47, 0x41, 0x54, 0x36, 0x36, 0x35, 0x30, 0x30, 0x37, 0x39,
|
||||
0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x30, 0x35, 0x31, 0x32, 0x31, 0x39, 0x0c, 0x00, 0x67, 0x57,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
},
|
||||
.info = {
|
||||
"INNOLIGHT ",
|
||||
"TR-VC13T-N00 ",
|
||||
"INGAT6650079 ",
|
||||
SFF_100G_PSM4_PROPERTIES,
|
||||
-1,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
#endif /** SFF_CONFIG_INCLUDE_DATABASE */
|
||||
};
|
||||
|
||||
@@ -136,6 +136,7 @@ aim_map_si_t sff_module_type_map[] =
|
||||
{ "100G_BASE_SR4", SFF_MODULE_TYPE_100G_BASE_SR4 },
|
||||
{ "100G_BASE_LR4", SFF_MODULE_TYPE_100G_BASE_LR4 },
|
||||
{ "100G_CWDM4", SFF_MODULE_TYPE_100G_CWDM4 },
|
||||
{ "100G_PSM4", SFF_MODULE_TYPE_100G_PSM4 },
|
||||
{ "40G_BASE_CR4", SFF_MODULE_TYPE_40G_BASE_CR4 },
|
||||
{ "40G_BASE_SR4", SFF_MODULE_TYPE_40G_BASE_SR4 },
|
||||
{ "40G_BASE_LR4", SFF_MODULE_TYPE_40G_BASE_LR4 },
|
||||
@@ -172,6 +173,7 @@ aim_map_si_t sff_module_type_desc_map[] =
|
||||
{ "100GBASE-SR4", SFF_MODULE_TYPE_100G_BASE_SR4 },
|
||||
{ "100GBASE-LR4", SFF_MODULE_TYPE_100G_BASE_LR4 },
|
||||
{ "100G-CWDM4", SFF_MODULE_TYPE_100G_CWDM4 },
|
||||
{ "100G-PSM4", SFF_MODULE_TYPE_100G_PSM4 },
|
||||
{ "40GBASE-CR4", SFF_MODULE_TYPE_40G_BASE_CR4 },
|
||||
{ "40GBASE-SR4", SFF_MODULE_TYPE_40G_BASE_SR4 },
|
||||
{ "40GBASE-LR4", SFF_MODULE_TYPE_40G_BASE_LR4 },
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#
|
||||
# Inclusive Makefile for the sff module.
|
||||
#
|
||||
# Autogenerated 2017-08-22 22:14:08.507022
|
||||
# Autogenerated 2017-08-31 20:47:10.071123
|
||||
#
|
||||
###############################################################################
|
||||
sff_BASEDIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
||||
|
||||
Submodule packages/platforms-closed updated: 194d6cef67...84fffe4502
2
sm/infra
2
sm/infra
Submodule sm/infra updated: fd74bf9c3f...36947a5451
Reference in New Issue
Block a user