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

After installing the SONiC image under ONIE on AS7326-56X/AS7726-56X, all ports cannot link up at the first boot of SONiC #3726

Merged
merged 1 commit into from
Nov 9, 2019

Conversation

CharlieChenEC
Copy link
Contributor

After installing the SONiC image under ONIE on AS7326-56X/AS7726-56X, all ports cannot link up at the first boot of SONiC

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 [email protected]

- What I did
Change the service defintion file "as7326-platform-handle_mac.service" and "as7726-32x-platform-handle_mac.service"
to execute "idt_init.sh" directly. The service type and the service dependency is also modified to ensure that
"opennsl-modules.services" is started after the execution of "idt_init.sh" is terminated.

- How I did it

- How to verify it
Install the modified SONiC image on AS7326-56X and AS7726-56X under ONIE.
Verify all of the ports can link up successfully at the first boot of SONiC after the ONIE installation procedure.

- Description for the changelog

Change the service defintion file "as7326-platform-handle_mac.service" and "as7726-32x-platform-handle_mac.service" to execute "idt_init.sh" directly.

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

… all ports cannot link up at the first boot of SONiC

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 <[email protected]>
@msftclas
Copy link

msftclas commented Nov 8, 2019

CLA assistant check
All CLA requirements met.

@lguohan
Copy link
Collaborator

lguohan commented Nov 9, 2019

retest broadcom please

@lguohan lguohan merged commit 099f9b0 into sonic-net:master Nov 9, 2019
zhenggen-xu pushed a commit to zhenggen-xu/sonic-buildimage that referenced this pull request Jan 10, 2020
…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 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants