Skip to content

Commit

Permalink
[devices]:start opennsl modules after platform handle mac service on …
Browse files Browse the repository at this point in the history
…AS7326-56X/AS7726-56X (sonic-net#3726)

AS7326-56X and AS7726-56X use the same design so both devices have the same problem.
The detailed description below takes AS7326-56X as the example to explain.

Original implementation:
- In platform/broadcom/sonic-platform-modules-accton/as7326-56x/service/as7326-platform-handle_mac.service,
  it executes the script file "accton_handle_idt.sh".
- In "accton_handle_idt.sh", it modifies the content of the script file "/etc/init.d/opennsl-modules"
  to insert the lines to execute "idt_init.sh" before the command to load broadcom linux kernel module "linux-kernel-bde.ko".
- The script "idt_init.sh" cannot be executed at the first boot of SONiC after installing SONiC under ONIE. This is the reason why all of the ports does not work.

New implementation:
- Let "as7326-platform-handle_mac.service" execute "idt_init.sh".
- Change the content of "as7326-platform-handle_mac.service" to define the service type as "oneshot". Add the settings to ensure "as7326-platform-handle_mac.service" is executed before "opennsl-modules.service".
  By setting the service type as "oneshot", it is guaranteed that "opennsl-modules.services" is started only when the forked process to execute the script file "idt_init.sh" is terminated

Signed-off-by: charlie_chen <charlie_chen@edge-core.com>
  • Loading branch information
CharlieChenEC authored and zhenggen-xu committed Jan 9, 2020
1 parent 53ed9a5 commit 1534785
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 16 deletions.
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
[Unit]
Description=Accton AS7326-56X Platform MAC hnadle service
Before=pmon.service
After=sysinit.target
DefaultDependencies=no
Description=Accton AS7326-56X Platform MAC handle service
Before=opennsl-modules.service
After=local-fs.target

[Service]
ExecStart=/usr/local/bin/accton_handle_idt.sh
KillSignal=SIGKILL
SuccessExitStatus=SIGKILL
Type=oneshot
ExecStart=/usr/local/bin/idt_init.sh
RemainAfterExit=yes

# Resource Limitations
LimitCORE=infinity

[Install]
WantedBy=multi-user.target
WantedBy=opennsl-modules.service
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
[Unit]
Description=Accton AS7726-32X Platform MAC hnadle service
Before=pmon.service
After=sysinit.target
DefaultDependencies=no
Description=Accton AS7726-32X Platform MAC handle service
Before=opennsl-modules.service
After=local-fs.target

[Service]
ExecStart=/usr/local/bin/accton_handle_idt.sh
KillSignal=SIGKILL
SuccessExitStatus=SIGKILL
Type=oneshot
ExecStart=/usr/local/bin/idt_init.sh
RemainAfterExit=yes

# Resource Limitations
LimitCORE=infinity

[Install]
WantedBy=multi-user.target
WantedBy=opennsl-modules.service

0 comments on commit 1534785

Please sign in to comment.