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

[platform]: update mitac platform drivers to support stretch. #1983

Closed
wants to merge 4 commits into from
Closed

[platform]: update mitac platform drivers to support stretch. #1983

wants to merge 4 commits into from

Conversation

stanepc1
Copy link
Contributor

Signed-off-by: Stane Shieh [email protected]

- What I did
Update ly1200 to support stretch
- How I did it
Modify driver code.
- How to verify it
Upload DUT to make sure all modules are running correctly.
- Description for the changelog

- A picture of a cute animal (not mandatory but encouraged)

@lguohan
Copy link
Collaborator

lguohan commented Aug 24, 2018

retest this please

eval sonic_version=$(cat /etc/sonic/sonic_version.yml | grep build_version | cut -f2 -d" ")
if [ -f /host/image-$sonic_version/platform/firsttime ]; then
update-rc.d xcvr_servd defaults >/dev/null
fi
Copy link
Collaborator

Choose a reason for hiding this comment

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

this needs to be moved into postinst script, it should not be in the init script.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I will move this to postinst.

@lguohan
Copy link
Collaborator

lguohan commented Aug 24, 2018

what are those deb files? are they vanilla debian packages? what are they used for? we need either download from the debian repo directly, or build from source. We cannot directly check-in the binary.

@lguohan
Copy link
Collaborator

lguohan commented Aug 24, 2018

what is sys-servd? we do not accept binary.

Copy link
Collaborator

@lguohan lguohan left a comment

Choose a reason for hiding this comment

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

as comments

@@ -188,6 +204,7 @@ load_i2c_dev_modules () {
case "$1" in
start)
echo -n "Setting up board... "
depmod -a
Copy link
Collaborator

Choose a reason for hiding this comment

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

depmod -a should not be in init script, it should be postinst for package installation.

Copy link
Contributor

Choose a reason for hiding this comment

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

postinst will automatically add depmod -a?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We create an environment to test reboot 1000 times. If we don't add "depmod -a" here, we will get a "libkmod: ERROR" message.

According to "https://books.google.com.tw/books?id=hG_bhCL4tQ8C&pg=PA417&lpg=PA417&dq=why+depmod+everytime&source=bl&ots=DPSB8IGh3M&sig=CU8KApYOLwEeTXYGYpI5LtDIQtY&hl=zh-TW&sa=X&ved=2ahUKEwjXhcuh9pjbAhXBU7wKHee9BQoQ6AEwBXoECAEQZg#v=onepage&q=why%20depmod%20everytime&f=false", "depmod -a" should run every boot.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I cannot see the book. depmod should not be in init script, it should be only run during package installation.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Please go to the directory in ${sonic}/platform/broadcom/ and execute following command

grep -nri --exclude-dir=debian --exclude=*.[ch] "depmod -a" *

You can see not every vendor runs "depmod -a" once during package installation. Some vendors run "depmod -a" during every boot via *.py which is executed by *.service of systemd.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

image

Copy link
Collaborator

Choose a reason for hiding this comment

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

modeles.dep does not need to be re-created every boot. we need to re-build them when we introduce new kernel moduels into the image. essentially the package installation time. As you can see, not all vendors are doing the right thing, we will correct them one-by-one, and we can discuss this in the coming community meeting.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I will remove "depmod -a" from init script.

@@ -21,7 +21,7 @@
#test-binary =
#test-timeout =

watchdog-device = /dev/watchdog
watchdog-device = /dev/watchdog5
Copy link
Collaborator

Choose a reason for hiding this comment

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

can you explain what does the watchdog provides you?

Copy link
Collaborator

Choose a reason for hiding this comment

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

for watchdog service, you can add watchdog into pmon docker and do something similiar as fancontrol service, if the platform device has a watchdog configuration file, then we can start the watchdog service inside the pmon docker. will this work for you?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It may work for everyone, but we have no plan to modify any existed docker in SONiC.
For watchdog service, the general watchdog of the Linux operating system can meet our requirement.

Copy link
Collaborator

Choose a reason for hiding this comment

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

the right place to add watchdog service is pmon docker, we do not have plan to add it in the base image.


override_dh_auto_build:
Copy link
Collaborator

Choose a reason for hiding this comment

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

using override semantic is better, this is a standard Debian rules file.

check example here.
https://github.com/Azure/sonic-platform-modules-s6000/blob/master/debian/rules

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I will keep using override semantic as you said.

@@ -13,6 +13,11 @@

case "$1" in
start)
eval sonic_version=$(cat /etc/sonic/sonic_version.yml | grep build_version | cut -f2 -d" ")
if [ -f /host/image-$sonic_version/platform/firsttime ]; then
update-rc.d xcvr_servd defaults >/dev/null
Copy link
Collaborator

Choose a reason for hiding this comment

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

I do not see xcvr_servd in the repository. what does it do? Is it same as sonic xrcvd? https://github.com/Azure/sonic-platform-daemons/tree/master/sonic-xcvrd/scripts

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It is a binary daemon and different from SONiC's xrcvd. The xcvr_servd will execute several initial processes whenever transceiver plug-in, otherwise the transceiver cannot work.

Copy link
Collaborator

Choose a reason for hiding this comment

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

this is open source project, we cannot have binaries to be checked-in. xrcvd does what you say, it detect the transceiver plug-in plug-out event and does something. if it miss functions you plan to add to you platform, it is the right place to add. Not submitting binary.

@stanepc1
Copy link
Contributor Author

The acpi-support-base_0.142-8_all.deb, acpi_1.7-1+b1_amd64.deb and acpid_2.0.28-1+b1_amd64.deb are used for receiving the interrupt signal that comes from transceiver. We have a daemon which is called "xcvr_servd" who executes several initial processes whenever transceiver plug-in, otherwise the transceiver cannot work.
The bc_1.06.95-9+b3_amd64.deb is used by our fan control daemon which was implemented by a shell script.
The watchdog_5.15-2_amd64.deb is a general watchdog for the Linux operating system.

These debian packages were committed to SONiC via the submodule of MiTAC since this February, but it seems that SONiC cannot accept them after you incorporate the submodule of MiTAC into the repo of SONiC.
If we separated the driver code of MiTAC from the repo of SONiC (restore to submodule), will you accept these debian packages just like before?
If not, does SONiC have a mechanism to install vendor-specific debian packages?

@lguohan
Copy link
Collaborator

lguohan commented Aug 27, 2018

can you help to explain why acpi is related to transceiver interrupt.

We can put bc into pmon docker, but you need to put the fan control script into pmon docker as well.

for watchdog, please see my comments above, it needs to be in pmon docker. it is the right place.

acpi, bc, watchdog is not vendor-specific debian packages, we can install them into, but we need to use right mechanism.

feel free to drop me email [email protected], we can follow-up.

@stanepc1 stanepc1 closed this Sep 6, 2018
dgsudharsan added a commit to dgsudharsan/sonic-buildimage that referenced this pull request Oct 29, 2021
The submodule update includes the following commits
ac3103a Add missing neighbor resolution for MPLS route programming (sonic-net#1968)
bfba0ad [vlanmgr]Fix for STATE_DB port check logic (sonic-net#1980)
9ef2ba4 Update VLAN removal code to work with 5.10 kernel and new
41fb26c Handle setting unknown mux state (sonic-net#1984)
ac09bde Increase timeout for VS tests (sonic-net#1988)
da8a43e Check if appl DB exists before deleting (sonic-net#1983)
553d75a Change tunnel orch order (sonic-net#1977)
7444e96 Add rekey period in macsec mgr (sonic-net#1958)
d95823d [Buffermgr]Graceful handling of buffer model change (sonic-net#1956)
b0aa6a0 EVPN VxLAN enhancement to support P2MP tunnel based programming for L
85bdf54 Fix the option missing in kernel config issue (sonic-net#1973)
6b15584 Orchagent validates mirror session queue parameter against maximum va
fc9ffb9 [copp] Add ISIS, LDP and micro-BFD trap types to CoPP manager (sonic-net#1890)
452cbc1 [macsecorch]: Add IPG adjusting for MACsec gearbox model (sonic-net#1925)

Signed-off-by: Sudharsan Dhamal Gopalarathnam <[email protected]>
@dgsudharsan dgsudharsan mentioned this pull request Oct 29, 2021
5 tasks
lguohan pushed a commit that referenced this pull request Nov 1, 2021
The submodule update includes the following commits
ac3103a Add missing neighbor resolution for MPLS route programming (#1968)
bfba0ad [vlanmgr]Fix for STATE_DB port check logic (#1980)
9ef2ba4 Update VLAN removal code to work with 5.10 kernel and new
41fb26c Handle setting unknown mux state (#1984)
ac09bde Increase timeout for VS tests (#1988)
da8a43e Check if appl DB exists before deleting (#1983)
553d75a Change tunnel orch order (#1977)
7444e96 Add rekey period in macsec mgr (#1958)
d95823d [Buffermgr]Graceful handling of buffer model change (#1956)
b0aa6a0 EVPN VxLAN enhancement to support P2MP tunnel based programming for L
85bdf54 Fix the option missing in kernel config issue (#1973)
6b15584 Orchagent validates mirror session queue parameter against maximum va
fc9ffb9 [copp] Add ISIS, LDP and micro-BFD trap types to CoPP manager (#1890)
452cbc1 [macsecorch]: Add IPG adjusting for MACsec gearbox model (#1925)

Signed-off-by: Sudharsan Dhamal Gopalarathnam <[email protected]>
stepanblyschak added a commit to stepanblyschak/sonic-buildimage that referenced this pull request Nov 11, 2021
```
5f8ebfa (HEAD, origin/master, origin/HEAD, master) [AclOrch] move ACL counters to flex counter infrastructure (sonic-net#1943)
8119ec0 [bfdorch] Orchagent support hardware BFD (sonic-net#1883)
15074ac [sonic-swss]:enable unconfiguring PFC on last TC on a port (sonic-net#1962)
05c7c05 [Mux orch] set default as standby, change mux orch priority (sonic-net#2010)
fe5b2a9 [pytest]: Ignore errors deleting host ifs (sonic-net#2005)
70da9af [ci]: use native arm64 and armhf pool (sonic-net#2013)
e14a071 [qos] Add EXP to TC map support (sonic-net#1954)
c91a7f2 [switchorch] Implement VXLAN src port range feature  (sonic-net#1959)
b20f0f4 Gcov for swss daemon (sonic-net#1737)
01c243a [CRM][MPLS] Fix the mpls nexthop CRM attribute (sonic-net#2008)
8448a60 [vs tests]Migrating sonic-swss tests to use hwsku instead of fakeplatform (sonic-net#1978)
faa26db Fix random failure in PR/CI build. (sonic-net#2006)
e03edb6 Allow interface type value none (sonic-net#1991)
71b9650 [orchagent] Fix group name of port-buffer-drop in flexcounterorch.cpp (sonic-net#1967)
facdef5 [VS test] Skip flaky virtual chassis test (sonic-net#2004)
8261c1f [pytest]: Increase timeout when checking services (sonic-net#2000)
67278be [teammgrd]: Handle LAGs cleanup gracefully on Warm/Fast reboot. (sonic-net#1934)
e92c1df Enable FEC statistics collection for Ethernet ports (sonic-net#1994)
9f30ca1 VxLAN Tunnel Counters and Rates implementation (sonic-net#1859)
ac3103a Add missing neighbor resolution for MPLS route programming (sonic-net#1968)
bfba0ad [vlanmgr]Fix for STATE_DB port check logic (sonic-net#1980)
9ef2ba4 [vlanmgr]: Update VLAN removal code to work with 5.10 kernel and newer iproute2 versions (sonic-net#1970)
41fb26c [Mux orch] Handle setting unknown mux state (sonic-net#1984)
ac09bde [azp]: Increase timeout for VS tests (sonic-net#1988)
da8a43e [pytest]: Check if appl DB exists before deleting (sonic-net#1983)
553d75a [tunnel decap] Change tunnel orch order (sonic-net#1977)
7444e96 [macsecmgr]: Add rekey period in macsec mgr (sonic-net#1958)
d95823d [Buffermgr]Graceful handling of buffer model change (sonic-net#1956)
b0aa6a0 EVPN VxLAN enhancement to support P2MP tunnel based programming for Layer2 extension (sonic-net#1858)
85bdf54 Fix the option missing in kernel config issue (sonic-net#1973)
6b15584 Orchagent validates mirror session queue parameter against maximum value from SAI (sonic-net#1957)
fc9ffb9 [copp] Add ISIS, LDP and micro-BFD trap types to CoPP manager (sonic-net#1890)
452cbc1 [macsecorch]: Add IPG adjusting for MACsec gearbox model (sonic-net#1925)
```

Signed-off-by: Stepan Blyschak <[email protected]>
vivekrnv pushed a commit to vivekrnv/sonic-buildimage that referenced this pull request Jan 6, 2022
Signed-off-by: Vivek Reddy Karri <[email protected]>

30f5dd6 Update the example for pfcwd start command (sonic-net#1984)
9e30871 [Auto Techsupport] Event driven Techsupport Bug Fixes (sonic-net#1986)
fbd565d Fix wrong help message for cable length setting (sonic-net#1978)
b3a5052 [GCU] Using simulated config instead of target config when validating replace operation in NoDependencyMoveValidator (sonic-net#1987)
35cb524 [GCU] Copying config_db before callding sonic_yang.loadData (sonic-net#1983)
a98858d [GCU] Different apply-patch runs should produce same sorted steps (sonic-net#1988)
8c81ae3 [breakout] Fix the check  when port is not present in BREAKOUT_CFG table (sonic-net#1765)
bc8fe7c [doc][DPB] Update DPB related interface breakout command Info (sonic-net#1438)
1a2a9a3 [config] Fix 'config reload -l' command to get filename by default (sonic-net#1611)
ed2fa69 [debug dump util] FDB debug dump util changes (sonic-net#1968)
3b642c9 [GCU] Loading yang-models only once (sonic-net#1981)
bb56fc2 Update swss_ready check to check per namespace swss service (sonic-net#1974)
4f39f9f [GCU] Moving PatchSorter unit-test to json file to make it easier to read/maintain (sonic-net#1977)
1a75870 [CLI][Help string] Changed the show command help text to be more consistent with each other.
818dcbf [GCU] Implementing DryRun by printing patch-sorter steps/imitating config_db (sonic-net#1973)
judyjoseph added a commit that referenced this pull request Jan 9, 2022
4236bc4 [config reload] Fixing config reload when timer based delayed services are disabled (#1967)
d2514e4 [GCU] Different apply-patch runs should produce same sorted steps (#1988)
2878adb [GCU] Using simulated config instead of target config when validating replace operation in NoDependencyMoveValidator (#1987)
fb8ca98 [GCU] Loading yang-models only once (#1981)
f88ee92 [GCU] Copying config_db before callding sonic_yang.loadData (#1983)
9ed0e91 [GCU] Implementing DryRun by printing patch-sorter steps/imitating config_db (#1973)
b36b5e3 [GCU] Moving PatchSorter unit-test to json file to make it easier to read/maintain (#1977)
c0fa28b [generic-config-updater] Improving CreateOnly validator and marking /LOOPBACK_INTERFACE/LOOPBACK#/vrf_name as create-only (#1969)
0559d04 [generic-config-updater] Adding non-strict mode (#1929)
b07f477 [debug dump util] FDB debug dump util changes (#1968)
6d8757a [warm/fast-reboot] Fix kexec portion to support platforms based on Device Tree (#1966)
cc1409e [Auto Techsupport] Event driven Techsupport Bug Fixes (#1986)
6c48bd5 Fix wrong help message for cable length setting (#1978)
c0bbbe3 [breakout] Fix the check  when port is not present in BREAKOUT_CFG table (#1765)
5bb8cad [doc][DPB] Update DPB related interface breakout command Info (#1438)
e6fd990 [config] Fix 'config reload -l' command to get filename by default (#1611)
bd8f7bb Update swss_ready check to check per namespace swss service (#1974)
5439f94 [soft-reboot] Add support for platforms based on Device Tree (#1963)
7c5810a [config] Add portchannel support  for static route  (#1857)
7cb6a1b preserve old order for config reload (#1964)
20bddbd [Auto-Techsupport] Issues related to Multiple Cores crashing handled (#1948)
@xumia xumia mentioned this pull request Jan 17, 2022
5 tasks
theasianpianist added a commit to theasianpianist/sonic-buildimage that referenced this pull request Feb 5, 2022
*Add a new helper method for deleting appl DBs, and use it anytime appl DB needs to be deleted
Signed-off-by: Lawrence Lee <[email protected]>
taras-keryk pushed a commit to taras-keryk/sonic-buildimage that referenced this pull request Apr 28, 2022
…t#1983)

#### What I did
Adding unit-test for cases where `PatchSorter.sort` is called to update config that has tables without YANG. This would sometimes throw the error
```
KeyError: 'NameOfTableWithoutYang'
```
This error happened because `find_ref_paths` would remove tables without yang as a side-effect.

Earlier this was fixed by cropping tables without yang models from current and target configs. That fix had 2 issues:
- It is not addressing the real problem which is cropping the config as a side effect to `find_ref_paths`
- If the move generated by the inner logic of `PatchSorter` was to replace whole config, it would result in replacing whole config with the config with cropped non-yang tables

#### How I did it
- Fixing `find_ref_paths` to not crop the given config as a side-effect
  - Added a unit-test for that
- Revert the change to crop current config and target config in `PatchSorter.sort`
  - Added a unit-test to verify replace whole config move does not result unintentionally in removing tables without yang
- Added unit-test to verify calling `PatchSorter.sort` on a config with non-yang tables does not result in the exception: 
  ```
  KeyError: 'NameOfTableWithoutYang'
  ```

#### How to verify it
unit-tests

#### Previous command output (if the output of a command-line utility has changed)

#### New command output (if the output of a command-line utility has changed)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants