Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ingrasys-s9100: Add ingrasys switch s9100 #311

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions dockers/docker-orchagent/start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ elif [ "$HWSKU" == "Arista-7050-QX32" ]; then
SWSSCONFIG_ARGS+="td2.32ports.buffers.1.json td2.32ports.buffers.2.json td2.32ports.buffers.3.json "
elif [ "$HWSKU" == "AS7512" ]; then
ORCHAGENT_ARGS+="-m $MAC_ADDRESS"
elif [ "$HWSKU" == "ingrasys-s9100" ]; then
ORCHAGENT_ARGS+="-m $MAC_ADDRESS"
fi

service rsyslog start
Expand Down
3 changes: 2 additions & 1 deletion dockers/docker-platform-monitor/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update

RUN apt-get install -y smartmontools sensord
RUN apt-get install -y smartmontools sensord fancontrol

## Clean up
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
Expand All @@ -18,4 +18,5 @@ ENTRYPOINT /usr/bin/config.sh \
&& service lm-sensors start \
&& service smartmontools start \
&& service sensord start \
&& service fancontrol restart \
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this fan control logic is probably difficult to be unified across different platform. other platform can have their own fan control mechanism/program.

our current thinking is to leave this decision to the platform owner to choose the best mechanism to control the fan speed. therefore, it is better not to put this into platform-montior docker since different platform owners may choose different mechanism. therefore, we'd recommend to move this into your platform debian package, which will be installed based on the hardware platform.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, no problem. We will re-send PR again

&& /bin/bash
5 changes: 5 additions & 0 deletions dockers/docker-platform-monitor/config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ then
/bin/cp -rf /usr/share/sonic/$hwsku/sensors.conf /etc/sensors.d/
fi

if [ -e /usr/share/sonic/$hwsku/fancontrol ]
then
/bin/cp -rf /usr/share/sonic/$hwsku/fancontrol /etc/fancontrol
fi

mkdir -p /var/sonic
echo "# Config files managed by sonic-config-engine" >/var/sonic/config_status

115 changes: 115 additions & 0 deletions files/image_config/minigraph/minigraph_ingrasys-s9100.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
<DeviceMiniGraph xmlns="Microsoft.Search.Autopilot.Evolution" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<CpgDec>
<IsisRouters xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"/>
<PeeringSessions>
<BGPSession>
<StartRouter>OCPSCH0104001MS</StartRouter>
<StartPeer>10.10.1.26</StartPeer>
<EndRouter>OCPSCH01040GGLF</EndRouter>
<EndPeer>10.10.1.25</EndPeer>
<Multihop>1</Multihop>
<HoldTime>10</HoldTime>
<KeepAliveTime>3</KeepAliveTime>
</BGPSession>
<BGPSession>
<StartRouter>OCPSCH0104002MS</StartRouter>
<StartPeer>10.10.2.26</StartPeer>
<EndRouter>OCPSCH01040GGLF</EndRouter>
<EndPeer>10.10.2.25</EndPeer>
<Multihop>1</Multihop>
<HoldTime>10</HoldTime>
<KeepAliveTime>3</KeepAliveTime>
</BGPSession>
</PeeringSessions>
<Routers xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">
<a:BGPRouterDeclaration>
<a:ASN>64536</a:ASN>
<a:Hostname>OCPSCH01040GGLF</a:Hostname>
<a:Peers>
<BGPPeer>
<Address>10.10.1.26</Address>
<RouteMapIn i:nil="true"/>
<RouteMapOut i:nil="true"/>
</BGPPeer>
<BGPPeer>
<Address>10.10.2.26</Address>
<RouteMapIn i:nil="true"/>
<RouteMapOut i:nil="true"/>
</BGPPeer>
</a:Peers>
<a:RouteMaps/>
</a:BGPRouterDeclaration>
<a:BGPRouterDeclaration>
<a:ASN>64542</a:ASN>
<a:Hostname>OCPSCH0104001MS</a:Hostname>
<a:RouteMaps/>
</a:BGPRouterDeclaration>
<a:BGPRouterDeclaration>
<a:ASN>64543</a:ASN>
<a:Hostname>OCPSCH0104002MS</a:Hostname>
<a:RouteMaps/>
</a:BGPRouterDeclaration>
</Routers>
</CpgDec>
<DpgDec>
<DeviceDataPlaneInfo>
<IPSecTunnels/>
<LoopbackIPInterfaces xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">
<a:LoopbackIPInterface>
<Name>HostIP</Name>
<AttachTo>Loopback0</AttachTo>
<a:Prefix xmlns:b="Microsoft.Search.Autopilot.NetMux">
<b:IPPrefix>100.0.0.9/32</b:IPPrefix>
</a:Prefix>
<a:PrefixStr>100.0.0.9/32</a:PrefixStr>
</a:LoopbackIPInterface>
</LoopbackIPInterfaces>
<ManagementIPInterfaces xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">
</ManagementIPInterfaces>
<MplsInterfaces/>
<MplsTeInterfaces/>
<RsvpInterfaces/>
<Hostname>OCPSCH01040GGLF</Hostname>
<PortChannelInterfaces/>
<VlanInterfaces/>
<IPInterfaces>
<IPInterface>
<Name i:nil="true"/>
<AttachTo>Ethernet0</AttachTo>
<Prefix>10.10.1.25/30</Prefix>
</IPInterface>
<IPInterface>
<Name i:nil="true"/>
<AttachTo>Ethernet4</AttachTo>
<Prefix>10.10.2.25/30</Prefix>
</IPInterface>
</IPInterfaces>
<DataAcls/>
<AclInterfaces/>
<DownstreamSummaries/>
<DownstreamSummarySet xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"/>
</DeviceDataPlaneInfo>
</DpgDec>
<PngDec>
<DeviceInterfaceLinks>
<DeviceLinkBase i:type="DeviceInterfaceLink">
<Bandwidth>40000</Bandwidth>
<ElementType>DeviceInterfaceLink</ElementType>
<EndDevice>OCPSCH0104001MS</EndDevice>
<EndPort>Ethernet24</EndPort>
<StartDevice>OCPSCH01040GGLF</StartDevice>
<StartPort>Ethernet0</StartPort>
</DeviceLinkBase>
<DeviceLinkBase i:type="DeviceInterfaceLink">
<Bandwidth>40000</Bandwidth>
<ElementType>DeviceInterfaceLink</ElementType>
<EndDevice>OCPSCH0104002MS</EndDevice>
<EndPort>Ethernet24</EndPort>
<StartDevice>OCPSCH01040GGLF</StartDevice>
<StartPort>Ethernet4</StartPort>
</DeviceLinkBase>
</DeviceInterfaceLinks>
</PngDec>
<Hostname>OCPSCH01040GGLF</Hostname>
<HwSku>ingrasys-s9100</HwSku>
</DeviceMiniGraph>
3 changes: 3 additions & 0 deletions installer/x86_64/platforms/x86_64-ingrasys_s9100-r0
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
CONSOLE_PORT=0x2f8
CONSOLE_DEV=1
CONSOLE_SPEED=115200
11 changes: 11 additions & 0 deletions src/sonic-config-engine/platform/ingrasys-s9100/fancontrol
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=10
DEVPATH=hwmon2=devices/pci0000:00/0000:00:1f.3/i2c-0/0-002f
DEVNAME=hwmon2=w83795adg
FCTEMPS=hwmon2/device/pwm2=hwmon2/device/temp2_input hwmon2/device/pwm1=hwmon2/device/temp2_input
FCFANS=hwmon2/device/pwm2=hwmon2/device/fan8_input hwmon2/device/pwm2=hwmon2/device/fan7_input hwmon2/device/pwm2=hwmon2/device/fan6_input hwmon2/device/pwm2=hwmon2/device/fan5_input hwmon2/device/pwm1=hwmon2/device/fan4_input hwmon2/device/pwm1=hwmon2/device/fan3_input hwmon2/device/pwm1=hwmon2/device/fan2_input hwmon2/device/pwm1=hwmon2/device/fan1_input
MINTEMP=hwmon2/device/pwm2=20 hwmon2/device/pwm1=20
MAXTEMP=hwmon2/device/pwm2=60 hwmon2/device/pwm1=60
MINSTART=hwmon2/device/pwm2=75 hwmon2/device/pwm1=75
MINSTOP=hwmon2/device/pwm2=22 hwmon2/device/pwm1=22

33 changes: 33 additions & 0 deletions src/sonic-config-engine/platform/ingrasys-s9100/port_config.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# name lanes alias
Ethernet0 5,6,7,8 Ethernet0
Ethernet4 1,2,3,4 Ethernet4
Ethernet8 13,14,15,16 Ethernet8
Ethernet12 9,10,11,12 Ethernet12
Ethernet16 21,22,23,24 Ethernet16
Ethernet20 17,18,19,20 Ethernet20
Ethernet24 29,30,31,32 Ethernet24
Ethernet28 25,26,27,28 Ethernet28
Ethernet32 37,38,39,40 Ethernet32
Ethernet36 33,34,35,36 Ethernet36
Ethernet40 45,46,47,48 Ethernet40
Ethernet44 41,42,43,44 Ethernet44
Ethernet48 53,54,55,56 Ethernet48
Ethernet52 49,50,51,52 Ethernet52
Ethernet56 61,62,63,64 Ethernet56
Ethernet60 57,58,59,60 Ethernet60
Ethernet64 69,70,71,72 Ethernet64
Ethernet68 65,66,67,68 Ethernet68
Ethernet72 77,78,79,80 Ethernet72
Ethernet76 73,74,75,76 Ethernet76
Ethernet80 85,86,87,88 Ethernet80
Ethernet84 81,82,83,84 Ethernet84
Ethernet88 93,94,95,96 Ethernet88
Ethernet92 89,90,91,92 Ethernet92
Ethernet96 101,102,103,104 Ethernet96
Ethernet100 97,98,99,100 Ethernet100
Ethernet104 109,110,111,112 Ethernet104
Ethernet108 105,106,107,108 Ethernet108
Ethernet112 117,118,119,120 Ethernet112
Ethernet116 113,114,115,116 Ethernet116
Ethernet120 125,126,127,128 Ethernet120
Ethernet124 121,122,123,124 Ethernet124
35 changes: 35 additions & 0 deletions src/sonic-config-engine/platform/ingrasys-s9100/sensors.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# libsensors configuration file
chip "i350bb-*"
ignore loc1

chip "jc42-*"
label temp1 "DIMM Temp"
set temp1_max 50
set temp1_crit 85

chip "w83795adg-*"
label in0 "1.0V"
label in1 "1.0V_ROV"
label in2 "1.25V"
label in3 "1.8V"
ignore in4
ignore in5
ignore in6
ignore in7
label in12 "+3.3V"
ignore in14
ignore in15
ignore in16
label fan1 "FANTRAY 1-A"
label fan2 "FANTRAY 1-B"
label fan3 "FANTRAY 2-A"
label fan4 "FANTRAY 2-B"
label fan5 "FANTRAY 3-A"
label fan6 "FANTRAY 3-B"
label fan7 "FANTRAY 4-A"
label fan8 "FANTRAY 4-B"
label temp1 "Front MAC Temp"
label temp2 "Rear MAC Temp"
ignore temp3
ignore temp4
ignore intrusion0
2 changes: 2 additions & 0 deletions src/sonic-config-engine/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ def get_platform_file_list():
files = ['platform/' + platform + '/port_config.ini']
if os.path.isfile( os.path.join(data_path, platform, 'sensors.conf') ):
files.append('platform/' + platform + '/sensors.conf') #Not all platforms need to have a sensors.conf file
if os.path.isfile( os.path.join(data_path, platform, 'fancontrol') ):
files.append('platform/' + platform + '/fancontrol') #Not all platforms need to have a fancontrol file
data_files.append( (os.path.join('/usr/share/sonic', platform), files) )
return data_files

Expand Down