Skip to content

Commit

Permalink
Merge branch 'sonic-net:master' into aggVoq
Browse files Browse the repository at this point in the history
  • Loading branch information
vivekverma-arista authored Nov 11, 2024
2 parents 2b47d1b + c591d7f commit 2bdb431
Show file tree
Hide file tree
Showing 123 changed files with 9,642 additions and 1,110 deletions.
130 changes: 130 additions & 0 deletions MoM.html
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,136 @@ <h2>SONiC community meeting minutes </h2>
<th style=" text-align: center; ">Links To Meeting Agenda</th>
<th style=" text-align: center; ">Links To Minutes Of The meeting</th>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Oct 29 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/839">No Meeting</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/841">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Oct 22 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/issues/1529">SSD Cleanup HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/827">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Oct 15 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/826">No Meeting</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/826">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Oct 08 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/815">SONiC-Disk-Reduce-IO HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/816">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Oct 01 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/810">No Meeting</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/810">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Sep 24 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/pull/1587">VOQ Aggregate Counters HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/808">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Sep 17 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/pull/1808">IPMC Data plane HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/803">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Sep 10 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/pull/1771">Enhacements for Overlay-Ecmp HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/795">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Sep 03 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/pull/1743">Egress ACL Outer DSCP Change HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/792">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Aug 27 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/pull/1761">MSTP HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/789">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Aug 20 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/pull/1760">SONiC Memory statistics HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/786">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Aug 13 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/pull/1713">SONiC Audit enhancements HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/785">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Aug 06 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/pull/1767">SONiC Optical Transport Network HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/784">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Jul 30 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/pull/1702">EVPN VxLAN Multi Homing HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/783">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Jul 23 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/pull/1521">BGP Loading Optimization HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/762">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Jul 16 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/pull/1698">Add HLD for Orchagent error handling improvements</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/763">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Jul 09 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/pull/1714">KDUMP Remote SSH Enhancement</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/764">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Jul 02 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/752">No Meeting</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/752">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Jun 25 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/765">No Meeting</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/765">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Jun 18 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/765">No Meeting</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/765">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Jun 11 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/pull/1700">Scheduled Configuration HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/747">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Jun 04 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/729">No Meeting</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/746">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;May 28 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/744">No Meeting</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/744">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;May 21 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/724">No Meeting</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/743">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;May 14 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://github.com/sonic-net/SONiC/blob/5ff7810e3e6743467abd5d5ad89327d97b147e46/doc/logrotate/logrotate_hld.md">Log rotate Feature HLD</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/720">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;May 07 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/708">No Meeting</a></td>
<td style=""><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/712">MoM</a></td>
</tr>
<tr>
<td style="">&nbsp;&nbsp;Apr 30 2024 &nbsp;&nbsp;</td>
<td style="text-align: left; "><a href="https://lists.sonicfoundation.dev/g/sonic-dev/message/697">No Meeting</a></td>
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ This repository contains documentation, Wiki, master project management, and web

Documentation covers project wide concerns such as the getting started guide, faq, general requirements for
contribution, developer's guide, governance, architecture, and so on. It also contains links to download and install SONiC
and links to all the source. See [SONiC Wiki](https://github.com/azure/sonic/wiki) for complete information.
and links to all the source. See [SONiC Wiki](https://github.com/sonic-net/sonic/wiki) for complete information.
24 changes: 24 additions & 0 deletions Supported-Devices-and-Platforms.html
Original file line number Diff line number Diff line change
Expand Up @@ -995,6 +995,22 @@ <h2><p style="text-align: left; font-family: Verdana, sans-serif; color: #2E86C1
<td></td>
</tr>
<tr>
<td>Micas Networks</td>
<td>M2-W6010-48GT4X</td>
<td class="asic_vendor">Centec</td>
<td>TsingMa</td>
<td>48x1G+4x10G</td>
<td></td>
</tr>
<tr>
<td>Micas Networks</td>
<td>M2-W6510-48V8C</td>
<td class="asic_vendor">Broadcom</td>
<td>Trident 3</td>
<td>48x25G+8x100G</td>
<td></td>
</tr>
<tr>
<td>Mitac</td>
<td>LY1200-B32H0-C3</td>
<td class="asic_vendor">Broadcom</td>
Expand Down Expand Up @@ -1235,6 +1251,14 @@ <h2><p style="text-align: left; font-family: Verdana, sans-serif; color: #2E86C1
<td></td>
</tr>
<tr>
<td>SuperMicro</td>
<td>SSE-T7132S</td>
<td class="asic_vendor">Marvell</td>
<td>Teralynx 7</td>
<td>32x400G</td>
<td></td>
</tr>
<tr>
<td>Tencent</td>
<td>TCS8400-24CC8CD</td>
<td class="asic_vendor">Broadcom</td>
Expand Down
Empty file added doc/DHCP Mitigation
Empty file.
159 changes: 159 additions & 0 deletions doc/DHCPv4_Gateway/DHCPv4_gateway.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
# DHCP Relay (v4) - Specify gaaddr as Primary Interface's Gateway explicitly #

## Table of Content
1. [Scope](#Scope)
2. [Definitions](#Definitions/Abbreviations)
3. [Overview](#Overview)
4. [Requirements](#Requirements)
5. [High Level Design](#High-Level-Design)
6. [Test](#Testing-Considerations)

### Revision

### Scope

This document describes the High Level Design of 'secondary' interfaces of vlan and use of primary (non-secondary) interface as gateway for dhcpv4 relay.

### Definitions/Abbreviations



### Overview

A vlan can support multiple subnets/interfaces. Some of these interfaces (ideally all except one) can be marked as 'secondary'.

Secondary addresses do not support DHCP (with dhcp relay). Dhcp relay agent will insert its primary address in dhcp request, and dhcp server should assign addresses from primary range only.

When a dhcpv4 packet is forwarded via (isc) dhcprelayagent, it embeds its interface's gateway address as 'giaddr' for return communication.
In case of multiple (primary) interfaces, dhcprelayagent randomly (mis)configures this giaddr to any of the interfaces.
This design fixes this behaviour by marking some interfaces as secondary, and explicitly specifying the primary interface for dhcp relay agent's gateway.

Secondary interface increases the number of IPs supported by switch without affecting live workloads. Such IPs will be used for virtualized machines on existing baremetals. This also provides finer control for different workloads from network security.

This feature is limited to IPv4-only.

### Requirements

1. Support a new member 'secondary' of VLAN_INTERFACE in config_db.
2. Support parsing and assignment of subnets from minigraph/json/cli to config_db.
3. Support specifying non-secondary interfaces' gateway address to command line arguments to /usr/sbin/dhcrelay as -pg (primary gateway).
4. isc-dhcp/dhcrelay to support '-pg gateway' argument.

### Architecture Design

This HLD doesn't propose any sonic architectural changes. It follows the existing architecture of sonic - open source asc-dhcp is used for its dhcpv4 requirements.
This HLD proposes to enhance the dhcp-relay (v4) capability by avoiding ambiguity in dhcpv4 request packet's giaddr field.

### High-Level Design

This section covers the high level design of the feature/enhancement. This section covers the following points in detail.

- Is it a built-in SONiC feature or a SONiC Application Extension? - Built in feature.
- What are the modules and sub-modules that are modified for this design? - isc-dhcp.
- What are the repositories that would be changed? - sonic-subnet/sonic-buildimage.
- Module/sub-module interfaces and dependencies.
- SWSS and Syncd changes in detail - N/A.
- DB and Schema changes (APP_DB, ASIC_DB, COUNTERS_DB, LOGLEVEL_DB, CONFIG_DB, STATE_DB) - CONFIG_DB sonic-vlan/sonic-vlan/VLAN_INTERFACE.
- Sequence diagram if required. - N/A.
- Linux dependencies and interface - N/A.
- Warm reboot requirements/dependencies - N/A.
- Fastboot requirements/dependencies - N/A.
- Scalability and performance requirements/impact - N/A.
- Memory requirements - N/A.
- Docker dependency - N/A,
- Build dependency if any - N/A.
- Management interfaces - SNMP, CLI, RestAPI, etc.,
- Serviceability and Debug (logging, counters, trace etc) related design
- Is this change specific to any platform? Are there dependencies for platforms to implement anything to make this feature work? If yes, explain in detail and inform community in advance. - N/A.
- SAI API requirements, CLI requirements, ConfigDB requirements. Design is covered in following sections. - ConfigDB requirement is captured below.

### SAI API

No change in SAI API.

### Configuration and management
(This section should have sub-sections for all types of configuration and management related design. Example sub-sections for "CLI" and "Config DB" are given below. Sub-sections related to data models (YANG, REST, gNMI, etc.,) should be added as required.)

#### Minigraph

Redis DB Structure | Json Style
```
{
"VLAN_INTERFACE": {
"Vlan1000": {},
"Vlan1000|20.11.12.13/27": {"secondary": "true"},
"Vlan1000|20.11.10.13/27": {},
}
}
```

#### Manifest (if the feature is an Application Extension)

N/A


#### CLI/YANG model Enhancements

Extend CLI to specify an interface ip as secondary during add:

$ sudo config interface ip add Vlan1000 20.11.12.13/27 20.11.12.254 --secondary
Usage: config interface ip add <interface_name> <ip_addr> <default gateway IP address> <secondary>

Extend yang (sonic-vlan.yang):
```
list VLAN_INTERFACE_IPPREFIX_LIST {
leaf secondary {
description "Optional field to specify if the prefix is secondary subnet";
type boolean;
}
}
```

#### Config DB Enhancements

Support a new optional member 'secondary' of VLAN_INTERFACE in config_db. Type: bool, Default: false.
No upgrade/action required in config_db for existing interfaces during upgrade.


### Warmboot and Fastboot Design Impact
This feature doesnt impact warmboot/fastboot. This feature is limited to dhcpv4 relay agent behaviour, which doesnt affect warmboot/fastboot.

### Memory Consumption
No memory consumption is expected when the feature is disabled via compilation and no growing memory consumption while feature is disabled by configuration.

### Restrictions/Limitations

### Testing Requirements/Design
Explain what kind of unit testing, system testing, regression testing, warmboot/fastboot testing, etc.,
Ensure that the existing warmboot/fastboot requirements are met. For example, if the current warmboot feature expects maximum of 1 second or zero second data disruption, the same should be met even after the new feature/enhancement is implemented. Explain the same here.
Example sub-sections for unit test cases and system test cases are given below.

#### Unit Test cases

Sonic has an extensive set of unit tests to validate dhcpv4 scenarios. Few test cases were modified with additional 'subnets', to validate existing test cases.

```
1. [sonic-buildimage] yang - model validation test case:
src/sonic-config-engine/tests/test_minigraph_case.py::test_minigraph_vlan_interfaces - to check if secondary flag is added.
src/sonic-config-engine/tests/test_minigraph_case.py:::test_minigraph_vlan_interfaces_keys - to check if secondary subnet is added in IPInterfaces.
2. [sonic-utilities] cli validation test cases: all the below cases are covered in tests/ip_config_test.py
validating --secondary flag in the command
validating -s flag in the command
Check if a primary subnet is present and only if it is add the secondary flag - if not fail
3. [sonic-mgmt] dhcp relay test case: Modify the existing two_vlan scenario to extend and have secondary subnet field in the minigraph
ansible/templates/minigraph_dpg.j2 - changes to add SecondarySubnets xml entry
ansible/vars/topo_t0.yml - changes to add secondary_subnet to the vlan
4. [sonic-buildimage] test dhcp-relay j2 file generation:
src/sonic-config-engine/tests/test_j2files.py::test_dhcp_relay - add a test case to read minigraph file with secondary subnet field present and validate it against the expected generated file.
src/sonic-config-engine/tests/t0-sample-graph-secondary-subnets.xml - minigraph with secondary subnets in Vlan1000
docker-dhcp-relay-secondary-subnets.supervisord.conf - expected output file in sample-output folder
```

#### System Test cases
N/A.

### Open/Action items - if any


NOTE: All the sections and sub-sections given above are mandatory in the design document. Users can add additional sections/sub-sections if required.
Loading

0 comments on commit 2bdb431

Please sign in to comment.