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

Alias Feature HLD #73

Merged
merged 3 commits into from
Dec 8, 2020
Merged

Alias Feature HLD #73

merged 3 commits into from
Dec 8, 2020

Conversation

justinejose91
Copy link

No description provided.


Same as CLI show test, but using gNMI GET request, verify the JSON response.

#### Configuration via REST

Choose a reason for hiding this comment

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

Can you please mention the PUT & PATCH for alias enable cli ?

Copy link

@nnag-broadcom nnag-broadcom left a comment

Choose a reason for hiding this comment

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

Please check the review comments

doc/mgmt/SONiC_AliasFeature_HLD.md Outdated Show resolved Hide resolved

# Scope

Covers general design for supporting alias feature.

Choose a reason for hiding this comment

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

I think it's important to note that the scope of this is limited to the SONiC Mgmt Framework (I think!). SONiC Click is unaffected I believe (at least it's not mentioned at all). Also config_db.json - what's the story here? The scoping needs stating.


- By default system will boot in native mode. Native mode is where interfaces are displayed as Ethernet 1, Ethernet 4, Ethernet 8 etc. This also ensures that backwards compatibility is maintained.
- Once alias is enabled, all subsequent CLI, REST & gNMI interfaces will use the alternative name for ethernet interface configuration & retrieval.
- Existing SSH sessions : TBD.

Choose a reason for hiding this comment

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

Please address the TBD

Copy link
Collaborator

Choose a reason for hiding this comment

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

Is it OK to kill all existing session when naming mode is changed?

Copy link

Choose a reason for hiding this comment

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

Is it OK to kill all existing session when naming mode is changed?

It's not ideal. What's the reason for needing to do this? It may be acceptable if there is no practical alternative, but it would be better to solve.


## 3.1 Overview

- When alias mode is enabled, ethernet interfaces will be represented as Eth[slot/port/breakout-port], where slot will start from 1 and port/breakout-port numbers will start from 1. This name format is fixed and will not have references to interface speed. For e.g Eth1/1 (in non breakout mode), Eth1/1/1 (in breakout mode).

Choose a reason for hiding this comment

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

Please define what you mean by "slot" in the SONiC world.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Being futuristic (for chassis case) and also allows the user to easily identify the mode from the name of the interface.

Copy link

Choose a reason for hiding this comment

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

Yes I understand that, but I'm asking to explain this in the doc. That is, explain that slot will likely always be 1 in a fixed pizza-box format, but may take different values in other formats (e.g. chassis).

## 3.1 Overview

- When alias mode is enabled, ethernet interfaces will be represented as Eth[slot/port/breakout-port], where slot will start from 1 and port/breakout-port numbers will start from 1. This name format is fixed and will not have references to interface speed. For e.g Eth1/1 (in non breakout mode), Eth1/1/1 (in breakout mode).
- The alias name {e.g Eth1/1) is picked from platform.json file. All platforms to be updated with this format for port name.

Choose a reason for hiding this comment

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

Are you referring to the "alias_at_lanes" defined here - https://github.com/Azure/SONiC/blob/439944c120d59edf7f62ed28a902b1a3c07a35f8/doc/dynamic-port-breakout/sonic-dynamic-port-breakout-HLD.md? Please say so. As I say above, I'm not convinced we should be overloading this with a fixed format.


#### 3.6.2.3 Debug Commands

#### 3.6.2.4 IS-CLI Compliance

Choose a reason for hiding this comment

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

Please state that Cisco has no equivalent command - port naming is always fixed.


- `​/sonic-device-metadata:sonic-device-metadata​/DEVICE_METADATA​/DEVICE_METADATA_LIST={name}​/aliasMode`


Choose a reason for hiding this comment

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

Can we also see examples of RESTCONF port reference in SONiC and standard mode? How is this changed when referring to ports (broken out and not).

- `​/sonic-device-metadata:sonic-device-metadata​/DEVICE_METADATA​/DEVICE_METADATA_LIST={name}​/aliasMode`


# 4 Flow Diagrams

Choose a reason for hiding this comment

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

No gNMI section?

# 4 Flow Diagrams

# 5 Error Handling

Choose a reason for hiding this comment

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

What happens if the user (CLI/script, REST, gNMI) refers to the wrong naming mode? Pls show the error message returned.

#### Get configuration via REST

Same as CLI configuration test, but using REST request

Choose a reason for hiding this comment

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

gNMI?


## 3.1 Overview

- When alias mode is enabled, ethernet interfaces will be represented as Eth[slot/port/breakout-port], where slot will start from 1 and port/breakout-port numbers will start from 1. This name format is fixed and will not have references to interface speed. For e.g Eth1/1 (in non breakout mode), Eth1/1/1 (in breakout mode).
Copy link

Choose a reason for hiding this comment

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

Any specific reason for starting from slot1 . Usually all Pizza boxes have their interfaces starting from 0 .
Will be soon supporting Subinterfaces . So how is it going to be ?

sonic(config)# alias enable
sonic(config)# no alias enable
```
#### Config commands when alias mode is enabled
Copy link

Choose a reason for hiding this comment

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

Please do mention no reload is needed

sonic(config)# no alias enable
```
#### Config commands when alias mode is enabled
`Eth 1/2`, `Eth1/2`, and `e1/2` options are supported to get into alias interface config mode. The parser converts all to `Eth1/2`.
Copy link

Choose a reason for hiding this comment

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

What if native mode is used to config in alias mode ?

doc/mgmt/SONiC_AliasFeature_HLD.md Show resolved Hide resolved
doc/mgmt/SONiC_AliasFeature_HLD.md Outdated Show resolved Hide resolved

- For dynamically using the right string for ethernet interfaces (i.e Ethernet 4 in native mode & Eth 1/4 in standard mode), XML file has to be modified to use the correct PTYPE. `PHY_INTERFACE` has to be used as PTYPE for Ethernet Interface.
- When interface-naming is set to standard, ethernet interfaces will be represented as Eth[slot/port/breakout-port], where slot will start from 1 and port/breakout-port numbers will start from 1. Slot will always likely to be 1 in fixed pizza-box format, but may take different values in chassis format. This name format is fixed and will not have references to interface speed. For e.g Eth1/1 (in non breakout mode), Eth1/1/1 (in breakout mode).
- The standard interface name {e.g Eth1/1) is picked from platform.json file. All platforms need to be updated with this format for port name.

Choose a reason for hiding this comment

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

Please confirm alias is picked up from CONFIG_DB not from platform.json, the back end application populate DB entries from platform.json based on break-out mode.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Need updated platform.json with the new format for ports. Interface-naming API's use data from CONFIG_DB.

@bhavini-gada bhavini-gada merged commit 2fc73eb into master Dec 8, 2020
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.

8 participants