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

[_sonic_yang_ext.py]: Extend sonic yang class to support cropping, transalation, reverse translation of … #11

Merged

Conversation

praveen-li
Copy link
Collaborator

@praveen-li praveen-li commented Dec 3, 2019

…config DB.

From the json format of yang models, a map is created from config DB tables
to container in yang model. Input Config is cropped on based of this map.
Input Config is also translated based of this map.
Similarly from yang data tree, output is reverse translated to config DB.

This PR also includes:
-- Find xpath of port, portleaf and a yang list.
-- Find if node is key of a list while deletion if yes, then delete the parent.

- What I did
-- Cropping input config based on Yang Model.
-- Translate input config based on Yang Model.
-- rev Translate input config based on Yang Model.
-- Find xpath of port, portleaf and a yang list.
-- Find if node is key of a list while deletion if yes, then delete the parent.

- How I did it
Yang model can be represented in JSON as below:

{
  "module": {
    "@name": "sonic-vlan", 
    "@xmlns": "urn:ietf:params:xml:ns:yang:yin:1", 
    "@xmlns:vlan": "http://github.com/Azure/sonic-vlan", 
    "@xmlns:yang": "urn:ietf:params:xml:ns:yang:ietf-yang-types", 
    "@xmlns:inet": "urn:ietf:params:xml:ns:yang:ietf-inet-types", 
    "@xmlns:head": "http://sonic-head", 
    "@xmlns:port": "http://github.com/Azure/sonic-port", 
    "namespace": {
      "@uri": "http://github.com/Azure/sonic-vlan"
    }, 
    "prefix": {
      "@value": "vlan"
    }, 
    "import": [
      {
        "@module": "ietf-yang-types", 
        "prefix": {
          "@value": "yang"
        }
      }, 
      {
        "@module": "ietf-inet-types", 
        "prefix": {
          "@value": "inet"
        }
      }, 
      {
        "@module": "sonic-head", 
        "prefix": {
          "@value": "head"
        }, 
        "revision-date": {
          "@date": "2019-07-01"
        }
      }, 
      {
        "@module": "sonic-port", 
        "prefix": {
          "@value": "port"
        }, 
        "revision-date": {
          "@date": "2019-07-01"
        }
      }
    ], 
    "organization": {
      "text": "Linkedin Corporation"
    }, 
    "contact": {
      "text": "lnos_coders@linkedin.com"
    }, 
    "description": {
      "text": "VLAN yang Module for SONiC OS"
    }, 
    "revision": {
      "@date": "2019-07-01", 
      "description": {
        "text": "First Revision"
      }
    },
    "container": {
      "@name": "sonic-vlan", 
      "container": [
        {
          "@name": "VLAN_INTERFACE", 
          "description": {
            "text": "VLAN_INTERFACE part of config_db.json"
          }, 
          "list": {
            "@name": "VLAN_INTERFACE_LIST", 
            "key": {
              "@value": "vlanid ip-prefix"
            }, 
            "leaf": [
              {
                "@name": "vlanid", 
                "type": {
                  "@name": "leafref", 
                  "path": {
                    "@value": "../../../VLAN/VLAN_LIST/vlanid"
                  }
                }
              }, 
              {
                "@name": "ip-prefix", 
                "type": {
                  "@name": "inet:ip-prefix"
                }, 
                "mandatory": {
                  "@value": "true"
                }
              }, 

This is used to create a map between Config DB Table and YANG Model Container.
Note: As per guideline https://github.com/Azure/SONiC/blob/master/doc/mgmt/SONiC_YANG_Model_Guidelines.md. Table maps to only container in YANG.

Map and json format of yang model is used to:
-- Cropping input config based on Yang Model.
-- Translate input config based on Yang Model.
-- rev Translate input config based on Yang Model.
-- Find xpath of port, portleaf and a yang list.
-- Find if node is key of a list while deletion if yes, then delete the parent.

- How to verify it
Added PyTest:
Below are sample config and cropped config files.

{
	"VLAN_INTERFACE": {
		"Vlan111|2a04:5555:45:6709::1/64": {
			"scope": "global",
			"family": "IPv6"
		},
		"Vlan111|10.222.10.65/26": {
			"scope": "global",
			"family": "IPv4"
		},
		"Vlan111|fe80::1/10": {
			"scope": "local",
			"family": "IPv6"
		},
		"Vlan777|2a04:5555:41:4e9::1/64": {
			"scope": "global",
			"family": "IPv6"
		},
		"Vlan777|10.111.58.65/26": {
			"scope": "global",
			"family": "IPv4"
		},
		"Vlan777|fe80::1/10": {
			"scope": "local",
			"family": "IPv6"
		}
	},
	"ACL_RULE": {
		"V4-ACL-TABLE|DEFAULT_DENY": {
			"PACKET_ACTION": "DROP",
			"IP_TYPE": "IPv4ANY",
			"PRIORITY": "0"
		},
		"V4-ACL-TABLE|Rule_20": {
			"PACKET_ACTION": "FORWARD",
			"DST_IP": "10.222.72.0/26",
			"SRC_IP": "10.222.0.0/15",
			"PRIORITY": "777780",
			"IP_TYPE": "IPv4ANY"
		},
		"V4-ACL-TABLE|Rule_40": {
			"PACKET_ACTION": "FORWARD",
			"DST_IP": "10.222.72.64/26",
			"SRC_IP": "10.222.0.0/15",
			"PRIORITY": "777760",
			"IP_TYPE": "IPv4ANY"
		},
		"V4-ACL-TABLE|Rule_60": {
			"PACKET_ACTION": "FORWARD",
			"DST_IP": "10.222.80.0/26",
			"SRC_IP": "10.222.0.0/15",
			"PRIORITY": "777740",
			"IP_TYPE": "IPv4ANY"
		},
		"V4-ACL-TABLE|Rule_80": {
			"PACKET_ACTION": "FORWARD",
			"DST_IP": "10.222.80.64/26",
			"SRC_IP": "10.222.0.0/15",
			"PRIORITY": "777720",
			"IP_TYPE": "IPv4ANY"
		},
		"V4-ACL-TABLE|Rule_111": {
			"PACKET_ACTION": "FORWARD",
			"DST_IP": "10.152.17.52/32",
			"SRC_IP": "10.222.0.0/15",
			"PRIORITY": "777700",
			"IP_TYPE": "IPv4ANY"
		},
		"V4-ACL-TABLE|Rule_120": {
			"PACKET_ACTION": "FORWARD",
			"DST_IP": "10.252.208.41/32",
			"SRC_IP": "10.222.0.0/15",
			"PRIORITY": "777880",
			"IP_TYPE": "IPv4ANY"
		},
		"V4-ACL-TABLE|Rule_140": {
			"PACKET_ACTION": "FORWARD",
			"DST_IP": "10.148.128.245/32",
			"SRC_IP": "10.222.0.0/15",
			"PRIORITY": "777860",
			"IP_TYPE": "IPv4ANY"
		},
		"V4-ACL-TABLE|Rule_160": {
			"PACKET_ACTION": "FORWARD",
			"DST_IP": "10.222.1.245/32",
			"SRC_IP": "10.222.0.0/15",
			"PRIORITY": "777840",
			"IP_TYPE": "IPv4ANY"
		},
		"V4-ACL-TABLE|Rule_180": {
			"PACKET_ACTION": "FORWARD",
			"DST_IP": "10.252.222.21/32",
			"SRC_IP": "10.222.0.0/15",
			"PRIORITY": "777820",
			"IP_TYPE": "IPv4ANY"
		},
		"V4-ACL-TABLE|Rule_9000": {
			"PACKET_ACTION": "DROP",
			"DST_IP": "0.0.0.0/0",
			"SRC_IP": "10.222.0.0/15",
			"PRIORITY": "991110",
			"IP_TYPE": "IPv4ANY"
		},
		"V4-ACL-TABLE|Rule_11100": {
			"PACKET_ACTION": "FORWARD",
			"DST_IP": "0.0.0.0/0",
			"SRC_IP": "0.0.0.0/0",
			"PRIORITY": "990000",
			"IP_TYPE": "IPv4ANY"
		},
		"V6-ACL-TBLE|DEFAULT_DENY": {
			"PACKET_ACTION": "DROP",
			"IP_TYPE": "IPv6ANY",
			"PRIORITY": "0"
		},
		"V6-ACL-TBLE|Rule_20": {
			"PACKET_ACTION": "FORWARD",
			"IP_TYPE": "IPv6ANY",
			"SRC_IPV6": "2a04:5555:41::/48",
			"PRIORITY": "777780",
			"DST_IPV6": "2a04:5555:43:320::/64"
		},
		"V6-ACL-TBLE|Rule_40": {
			"PACKET_ACTION": "FORWARD",
			"IP_TYPE": "IPv6ANY",
			"SRC_IPV6": "2a04:5555:41::/48",
			"PRIORITY": "777760",
			"DST_IPV6": "2a04:5555:43:321::/64"
		},
		"V6-ACL-TBLE|Rule_60": {
			"PACKET_ACTION": "FORWARD",
			"IP_TYPE": "IPv6ANY",
			"SRC_IPV6": "2a04:5555:41::/48",
			"PRIORITY": "777740",
			"DST_IPV6": "2a04:5555:43:340::/64"
		},
		"V6-ACL-TBLE|Rule_80": {
			"PACKET_ACTION": "FORWARD",
			"IP_TYPE": "IPv6ANY",
			"SRC_IPV6": "2a04:5555:41::/48",
			"PRIORITY": "777720",
			"DST_IPV6": "2a04:5555:43:341::/64"
		},
		"V6-ACL-TBLE|Rule_111": {
			"PACKET_ACTION": "FORWARD",
			"IP_TYPE": "IPv6ANY",
			"SRC_IPV6": "2a04:5555:41::/48",
			"PRIORITY": "777700",
			"DST_IPV6": "2a04:5555:32:12::/64"
		},
		"V6-ACL-TBLE|Rule_9000": {
			"PACKET_ACTION": "DROP",
			"IP_TYPE": "IPv6ANY",
			"SRC_IPV6": "2a04:5555:41::/48",
			"PRIORITY": "991110",
			"DST_IPV6": "::/0"
		},
		"V6-ACL-TBLE|Rule_11100": {
			"PACKET_ACTION": "FORWARD",
			"IP_TYPE": "IPv6ANY",
			"SRC_IPV6": "::/0",
			"PRIORITY": "990000",
			"DST_IPV6": "::/0"
		}
	},
	"DEVICE_METADATA": {
		"localhost": {
			"mg_type": "ToR",
			"mac": "00:11:22:33:dd:5a",
			"hostname": "asw.dc",
			"bgp_asn": "64850",
			"hwsku": "Stone"
		}
	},
	"VLAN": {
		"Vlan111": {
			"description": "svlan",
			"dhcp_servers": [
				"10.222.72.116"
			],
			"vlanid": "111",
			"mtu": "9216",
			"admin_status": "up",
			"members": [
				"Ethernet8",
				"Ethernet3",
				"Ethernet0",
				"Ethernet1",
				"Ethernet6",
				"Ethernet4",
				"Ethernet5",
				"Ethernet9",
				"Ethernet2",
				"Ethernet7",
				"Ethernet32",
				"Ethernet30",
				"Ethernet31",
				"Ethernet36",
				"Ethernet34",
				"Ethernet33",
				"Ethernet35",
				"Ethernet29",
				"Ethernet21",
				"Ethernet20",
				"Ethernet23",
				"Ethernet22",
				"Ethernet27",
				"Ethernet26",
				"Ethernet18",
				"Ethernet19",
				"Ethernet14",
				"Ethernet15",
				"Ethernet16",
				"Ethernet17",
				"Ethernet10",
				"Ethernet11",
				"Ethernet12",
				"Ethernet13",
				"Ethernet28"
			]
		},
		"Vlan777": {
			"description": "pvlan",
			"dhcp_servers": [
				"10.222.72.116"
			],
			"vlanid": "777",
			"mtu": "9216",
			"admin_status": "up",
			"members": [
				"Ethernet9",
				"Ethernet2",
				"Ethernet8",
				"Ethernet27",
				"Ethernet14",
				"Ethernet35"
			]
		}
	},
	"DEVICE_NEIGHBOR": {
		"Ethernet112": {
			"name": "dccsw01.nw",
			"port": "Eth18"
		},
		"Ethernet114": {
			"name": "dccsw02.nw",
			"port": "Eth18"
		},
		"Ethernet116": {
			"name": "dccsw03.nw",
			"port": "Eth18"
		},
		"Ethernet118": {
			"name": "dccsw04.nw",
			"port": "Eth18"
		}
	},
	"PORT": {
		"Ethernet0": {
			"alias": "Eth1/1",
			"lanes": "65",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet1": {
			"alias": "Eth1/2",
			"lanes": "66",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet2": {
			"alias": "Eth1/3",
			"lanes": "67",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet3": {
			"alias": "Eth1/4",
			"lanes": "68",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet4": {
			"alias": "Eth2/1",
			"lanes": "69",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet5": {
			"alias": "Eth2/2",
			"lanes": "70",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet6": {
			"alias": "Eth2/3",
			"lanes": "71",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet7": {
			"alias": "Eth2/4",
			"lanes": "72",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet8": {
			"alias": "Eth3/1",
			"lanes": "73",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet9": {
			"alias": "Eth3/2",
			"lanes": "74",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet10": {
			"alias": "Eth3/3",
			"lanes": "75",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet11": {
			"alias": "Eth3/4",
			"lanes": "76",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet12": {
			"alias": "Eth4/1",
			"lanes": "77",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet13": {
			"alias": "Eth4/2",
			"lanes": "78",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet14": {
			"alias": "Eth4/3",
			"lanes": "79",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet15": {
			"alias": "Eth4/4",
			"lanes": "80",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet16": {
			"alias": "Eth5/1",
			"lanes": "33",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet17": {
			"alias": "Eth5/2",
			"lanes": "34",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet18": {
			"alias": "Eth5/3",
			"lanes": "35",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet19": {
			"alias": "Eth5/4",
			"lanes": "36",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet20": {
			"alias": "Eth6/1",
			"lanes": "37",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet21": {
			"alias": "Eth6/2",
			"lanes": "38",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet22": {
			"alias": "Eth6/3",
			"lanes": "39",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet23": {
			"alias": "Eth6/4",
			"lanes": "40",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet24": {
			"alias": "Eth7/1",
			"lanes": "41",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet25": {
			"alias": "Eth7/2",
			"lanes": "42",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet26": {
			"alias": "Eth7/3",
			"lanes": "43",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet27": {
			"alias": "Eth7/4",
			"lanes": "44",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet28": {
			"alias": "Eth8/1",
			"lanes": "45",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet29": {
			"alias": "Eth8/2",
			"lanes": "46",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet30": {
			"alias": "Eth8/3",
			"lanes": "47",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet31": {
			"alias": "Eth8/4",
			"lanes": "48",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet32": {
			"alias": "Eth9/1",
			"lanes": "49",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet33": {
			"alias": "Eth9/2",
			"lanes": "50",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet34": {
			"alias": "Eth9/3",
			"lanes": "51",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet35": {
			"alias": "Eth9/4",
			"lanes": "52",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet36": {
			"alias": "Eth10/1",
			"lanes": "53",
			"description": "",
			"speed": "11100",
			"admin_status": "up"
		},
		"Ethernet112": {
			"alias": "Eth29/1",
			"lanes": "113,114",
			"description": "50G|dccsw01.nw|Eth18",
			"fec": "fc",
			"admin_status": "up"
		}
	},
	"ACL_TABLE": {
		"V4-ACL-TABLE": {
			"type": "L3",
			"policy_desc": "V4-ACL-TABLE",
			"ports": [
				"Ethernet26",
				"Ethernet27",
				"Ethernet24"
			]
		},
		"V6-ACL-TBLE": {
			"type": "L3V6",
			"policy_desc": "V6-ACL-TBLE",
			"ports": [
				"Ethernet14",
				"Ethernet15",
				"Ethernet23",
				"Ethernet30",
				"Ethernet31",
				"Ethernet18",
				"Ethernet19",
				"Ethernet25",
				"Ethernet24"
			]
		}
	},
	"INTERFACE": {
		"Ethernet112|2a04:5555:40:a709::2/126": {
			"scope": "global",
			"family": "IPv6"
		},
		"Ethernet112|10.184.228.211/31": {
			"scope": "global",
			"family": "IPv4"
		},
		"Ethernet14|2a04:5555:40:a749::2/126": {
			"scope": "global",
			"family": "IPv6"
		},
		"Ethernet14|10.184.229.211/31": {
			"scope": "global",
			"family": "IPv4"
		},
		"Ethernet16|2a04:5555:40:a789::2/126": {
			"scope": "global",
			"family": "IPv6"
		},
		"Ethernet16|10.184.230.211/31": {
			"scope": "global",
			"family": "IPv4"
		},
		"Ethernet18|2a04:5555:40:a7c9::2/126": {
			"scope": "global",
			"family": "IPv6"
		},
		"Ethernet18|10.184.231.211/31": {
			"scope": "global",
			"family": "IPv4"
		}
	},
	"VLAN_MEMBER": {
		"Vlan111|Ethernet0": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet1": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet2": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet3": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet4": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet5": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet6": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet29": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet30": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet31": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet32": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet33": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet34": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet35": {
			"tagging_mode": "untagged"
		},
		"Vlan111|Ethernet36": {
			"tagging_mode": "untagged"
		}
	},
	"LOOPBACK_INTERFACE": {
		"Loopback0|2a04:5555:40:4::4e9/128": {
			"scope": "global",
			"family": "IPv6"
		},
		"Loopback0|10.184.8.233/32": {
			"scope": "global",
			"family": "IPv4"
		}
	},
	"CRM": {
		"Config": {
			"polling_interval": "0"
		}
	}
}

Cropped Config

{
    "VLAN_INTERFACE": {
        "Vlan777|fe80::1/10": {
            "scope": "local", 
            "family": "IPv6"
        }, 
        "Vlan777|10.111.58.65/26": {
            "scope": "global", 
            "family": "IPv4"
        }, 
        "Vlan111|10.222.10.65/26": {
            "scope": "global", 
            "family": "IPv4"
        }, 
        "Vlan777|2a04:5555:41:4e9::1/64": {
            "scope": "global", 
            "family": "IPv6"
        }, 
        "Vlan111|2a04:5555:45:6709::1/64": {
            "scope": "global", 
            "family": "IPv6"
        }, 
        "Vlan111|fe80::1/10": {
            "scope": "local", 
            "family": "IPv6"
        }
    }, 
    "ACL_RULE": {
        "V4-ACL-TABLE|Rule_20": {
            "PACKET_ACTION": "FORWARD", 
            "DST_IP": "10.222.72.0/26", 
            "SRC_IP": "10.222.0.0/15", 
            "IP_TYPE": "IPv4ANY", 
            "PRIORITY": "777780"
        }, 
        "V4-ACL-TABLE|Rule_111": {
            "PACKET_ACTION": "FORWARD", 
            "DST_IP": "10.152.17.52/32", 
            "SRC_IP": "10.222.0.0/15", 
            "IP_TYPE": "IPv4ANY", 
            "PRIORITY": "777700"
        }, 
        "V6-ACL-TBLE|Rule_80": {
            "PACKET_ACTION": "FORWARD", 
            "IP_TYPE": "IPv6ANY", 
            "SRC_IPV6": "2a04:5555:41::/48", 
            "DST_IPV6": "2a04:5555:43:341::/64", 
            "PRIORITY": "777720"
        }, 
        "V6-ACL-TBLE|Rule_40": {
            "PACKET_ACTION": "FORWARD", 
            "IP_TYPE": "IPv6ANY", 
            "SRC_IPV6": "2a04:5555:41::/48", 
            "DST_IPV6": "2a04:5555:43:321::/64", 
            "PRIORITY": "777760"
        }, 
        "V4-ACL-TABLE|Rule_180": {
            "PACKET_ACTION": "FORWARD", 
            "DST_IP": "10.252.222.21/32", 
            "SRC_IP": "10.222.0.0/15", 
            "IP_TYPE": "IPv4ANY", 
            "PRIORITY": "777820"
        }, 
        "V4-ACL-TABLE|Rule_140": {
            "PACKET_ACTION": "FORWARD", 
            "DST_IP": "10.148.128.245/32", 
            "SRC_IP": "10.222.0.0/15", 
            "IP_TYPE": "IPv4ANY", 
            "PRIORITY": "777860"
        }, 
        "V6-ACL-TBLE|Rule_60": {
            "PACKET_ACTION": "FORWARD", 
            "IP_TYPE": "IPv6ANY", 
            "SRC_IPV6": "2a04:5555:41::/48", 
            "DST_IPV6": "2a04:5555:43:340::/64", 
            "PRIORITY": "777740"
        }, 
        "V4-ACL-TABLE|Rule_80": {
            "PACKET_ACTION": "FORWARD", 
            "DST_IP": "10.222.80.64/26", 
            "SRC_IP": "10.222.0.0/15", 
            "IP_TYPE": "IPv4ANY", 
            "PRIORITY": "777720"
        }, 
        "V6-ACL-TBLE|Rule_11100": {
            "PACKET_ACTION": "FORWARD", 
            "IP_TYPE": "IPv6ANY", 
            "SRC_IPV6": "::/0", 
            "DST_IPV6": "::/0", 
            "PRIORITY": "990000"
        }, 
        "V4-ACL-TABLE|Rule_120": {
            "PACKET_ACTION": "FORWARD", 
            "DST_IP": "10.252.208.41/32", 
            "SRC_IP": "10.222.0.0/15", 
            "IP_TYPE": "IPv4ANY", 
            "PRIORITY": "777880"
        }, 
        "V4-ACL-TABLE|Rule_11100": {
            "PACKET_ACTION": "FORWARD", 
            "DST_IP": "0.0.0.0/0", 
            "SRC_IP": "0.0.0.0/0", 
            "IP_TYPE": "IPv4ANY", 
            "PRIORITY": "990000"
        }, 
        "V4-ACL-TABLE|Rule_9000": {
            "PACKET_ACTION": "DROP", 
            "DST_IP": "0.0.0.0/0", 
            "SRC_IP": "10.222.0.0/15", 
            "IP_TYPE": "IPv4ANY", 
            "PRIORITY": "991110"
        }, 
        "V4-ACL-TABLE|DEFAULT_DENY": {
            "PACKET_ACTION": "DROP", 
            "IP_TYPE": "IPv4ANY", 
            "PRIORITY": "0"
        }, 
        "V6-ACL-TBLE|Rule_9000": {
            "PACKET_ACTION": "DROP", 
            "IP_TYPE": "IPv6ANY", 
            "SRC_IPV6": "2a04:5555:41::/48", 
            "DST_IPV6": "::/0", 
            "PRIORITY": "991110"
        }, 
        "V6-ACL-TBLE|DEFAULT_DENY": {
            "PACKET_ACTION": "DROP", 
            "IP_TYPE": "IPv6ANY", 
            "PRIORITY": "0"
        }, 
        "V4-ACL-TABLE|Rule_40": {
            "PACKET_ACTION": "FORWARD", 
            "DST_IP": "10.222.72.64/26", 
            "SRC_IP": "10.222.0.0/15", 
            "IP_TYPE": "IPv4ANY", 
            "PRIORITY": "777760"
        }, 
        "V4-ACL-TABLE|Rule_160": {
            "PACKET_ACTION": "FORWARD", 
            "DST_IP": "10.222.1.245/32", 
            "SRC_IP": "10.222.0.0/15", 
            "IP_TYPE": "IPv4ANY", 
            "PRIORITY": "777840"
        }, 
        "V6-ACL-TBLE|Rule_20": {
            "PACKET_ACTION": "FORWARD", 
            "IP_TYPE": "IPv6ANY", 
            "SRC_IPV6": "2a04:5555:41::/48", 
            "DST_IPV6": "2a04:5555:43:320::/64", 
            "PRIORITY": "777780"
        }, 
        "V4-ACL-TABLE|Rule_60": {
            "PACKET_ACTION": "FORWARD", 
            "DST_IP": "10.222.80.0/26", 
            "SRC_IP": "10.222.0.0/15", 
            "IP_TYPE": "IPv4ANY", 
            "PRIORITY": "777740"
        }, 
        "V6-ACL-TBLE|Rule_111": {
            "PACKET_ACTION": "FORWARD", 
            "IP_TYPE": "IPv6ANY", 
            "SRC_IPV6": "2a04:5555:41::/48", 
            "DST_IPV6": "2a04:5555:32:12::/64", 
            "PRIORITY": "777700"
        }
    }, 
    "VLAN": {
        "Vlan111": {
            "description": "svlan", 
            "dhcp_servers": [
                "10.222.72.116"
            ], 
            "vlanid": "111", 
            "mtu": "9216", 
            "admin_status": "up", 
            "members": [
                "Ethernet8", 
                "Ethernet3", 
                "Ethernet0", 
                "Ethernet1", 
                "Ethernet6", 
                "Ethernet4", 
                "Ethernet5", 
                "Ethernet9", 
                "Ethernet2", 
                "Ethernet7", 
                "Ethernet32", 
                "Ethernet30", 
                "Ethernet31", 
                "Ethernet36", 
                "Ethernet34", 
                "Ethernet33", 
                "Ethernet35", 
                "Ethernet29", 
                "Ethernet21", 
                "Ethernet20", 
                "Ethernet23", 
                "Ethernet22", 
                "Ethernet27", 
                "Ethernet26", 
                "Ethernet18", 
                "Ethernet19", 
                "Ethernet14", 
                "Ethernet15", 
                "Ethernet16", 
                "Ethernet17", 
                "Ethernet10", 
                "Ethernet11", 
                "Ethernet12", 
                "Ethernet13", 
                "Ethernet28"
            ]
        }, 
        "Vlan777": {
            "description": "pvlan", 
            "dhcp_servers": [
                "10.222.72.116"
            ], 
            "vlanid": "777", 
            "mtu": "9216", 
            "admin_status": "up", 
            "members": [
                "Ethernet9", 
                "Ethernet2", 
                "Ethernet8", 
                "Ethernet27", 
                "Ethernet14", 
                "Ethernet35"
            ]
        }
    }, 
    "ACL_TABLE": {
        "V6-ACL-TBLE": {
            "type": "L3V6", 
            "policy_desc": "V6-ACL-TBLE", 
            "ports": [
                "Ethernet14", 
                "Ethernet15", 
                "Ethernet23", 
                "Ethernet30", 
                "Ethernet31", 
                "Ethernet18", 
                "Ethernet19", 
                "Ethernet25", 
                "Ethernet24"
            ]
        }, 
        "V4-ACL-TABLE": {
            "type": "L3", 
            "policy_desc": "V4-ACL-TABLE", 
            "ports": [
                "Ethernet26", 
                "Ethernet27", 
                "Ethernet24"
            ]
        }
    }, 
    "INTERFACE": {
        "Ethernet16|10.184.230.211/31": {
            "scope": "global", 
            "family": "IPv4"
        }, 
        "Ethernet112|10.184.228.211/31": {
            "scope": "global", 
            "family": "IPv4"
        }, 
        "Ethernet112|2a04:5555:40:a709::2/126": {
            "scope": "global", 
            "family": "IPv6"
        }, 
        "Ethernet18|2a04:5555:40:a7c9::2/126": {
            "scope": "global", 
            "family": "IPv6"
        }, 
        "Ethernet14|2a04:5555:40:a749::2/126": {
            "scope": "global", 
            "family": "IPv6"
        }, 
        "Ethernet18|10.184.231.211/31": {
            "scope": "global", 
            "family": "IPv4"
        }, 
        "Ethernet14|10.184.229.211/31": {
            "scope": "global", 
            "family": "IPv4"
        }, 
        "Ethernet16|2a04:5555:40:a789::2/126": {
            "scope": "global", 
            "family": "IPv6"
        }
    }, 
    "VLAN_MEMBER": {
        "Vlan111|Ethernet4": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet5": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet6": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet0": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet1": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet2": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet3": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet29": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet30": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet31": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet32": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet33": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet34": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet35": {
            "tagging_mode": "untagged"
        }, 
        "Vlan111|Ethernet36": {
            "tagging_mode": "untagged"
        }
    }, 
    "PORT": {
        "Ethernet35": {
            "alias": "Eth9/4", 
            "admin_status": "up", 
            "lanes": "52", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet8": {
            "alias": "Eth3/1", 
            "admin_status": "up", 
            "lanes": "73", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet9": {
            "alias": "Eth3/2", 
            "admin_status": "up", 
            "lanes": "74", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet2": {
            "alias": "Eth1/3", 
            "admin_status": "up", 
            "lanes": "67", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet3": {
            "alias": "Eth1/4", 
            "admin_status": "up", 
            "lanes": "68", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet0": {
            "alias": "Eth1/1", 
            "admin_status": "up", 
            "lanes": "65", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet1": {
            "alias": "Eth1/2", 
            "admin_status": "up", 
            "lanes": "66", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet6": {
            "alias": "Eth2/3", 
            "admin_status": "up", 
            "lanes": "71", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet7": {
            "alias": "Eth2/4", 
            "admin_status": "up", 
            "lanes": "72", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet4": {
            "alias": "Eth2/1", 
            "admin_status": "up", 
            "lanes": "69", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet5": {
            "alias": "Eth2/2", 
            "admin_status": "up", 
            "lanes": "70", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet18": {
            "alias": "Eth5/3", 
            "admin_status": "up", 
            "lanes": "35", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet19": {
            "alias": "Eth5/4", 
            "admin_status": "up", 
            "lanes": "36", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet14": {
            "alias": "Eth4/3", 
            "admin_status": "up", 
            "lanes": "79", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet15": {
            "alias": "Eth4/4", 
            "admin_status": "up", 
            "lanes": "80", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet16": {
            "alias": "Eth5/1", 
            "admin_status": "up", 
            "lanes": "33", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet17": {
            "alias": "Eth5/2", 
            "admin_status": "up", 
            "lanes": "34", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet10": {
            "alias": "Eth3/3", 
            "admin_status": "up", 
            "lanes": "75", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet11": {
            "alias": "Eth3/4", 
            "admin_status": "up", 
            "lanes": "76", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet12": {
            "alias": "Eth4/1", 
            "admin_status": "up", 
            "lanes": "77", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet13": {
            "alias": "Eth4/2", 
            "admin_status": "up", 
            "lanes": "78", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet32": {
            "alias": "Eth9/1", 
            "admin_status": "up", 
            "lanes": "49", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet33": {
            "alias": "Eth9/2", 
            "admin_status": "up", 
            "lanes": "50", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet112": {
            "alias": "Eth29/1", 
            "admin_status": "up", 
            "lanes": "113,114", 
            "description": "50G|dccsw01.nw|Eth18", 
            "fec": "fc"
        }, 
        "Ethernet30": {
            "alias": "Eth8/3", 
            "admin_status": "up", 
            "lanes": "47", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet31": {
            "alias": "Eth8/4", 
            "admin_status": "up", 
            "lanes": "48", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet36": {
            "alias": "Eth10/1", 
            "admin_status": "up", 
            "lanes": "53", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet29": {
            "alias": "Eth8/2", 
            "admin_status": "up", 
            "lanes": "46", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet28": {
            "alias": "Eth8/1", 
            "admin_status": "up", 
            "lanes": "45", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet34": {
            "alias": "Eth9/3", 
            "admin_status": "up", 
            "lanes": "51", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet21": {
            "alias": "Eth6/2", 
            "admin_status": "up", 
            "lanes": "38", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet20": {
            "alias": "Eth6/1", 
            "admin_status": "up", 
            "lanes": "37", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet23": {
            "alias": "Eth6/4", 
            "admin_status": "up", 
            "lanes": "40", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet22": {
            "alias": "Eth6/3", 
            "admin_status": "up", 
            "lanes": "39", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet25": {
            "alias": "Eth7/2", 
            "admin_status": "up", 
            "lanes": "42", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet24": {
            "alias": "Eth7/1", 
            "admin_status": "up", 
            "lanes": "41", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet27": {
            "alias": "Eth7/4", 
            "admin_status": "up", 
            "lanes": "44", 
            "description": "", 
            "speed": "11100"
        }, 
        "Ethernet26": {
            "alias": "Eth7/3", 
            "admin_status": "up", 
            "lanes": "43", 
            "description": "", 
            "speed": "11100"
        }
    }
}

Results will be added after PR #12 merge.
Translated Config:

Rev Translated config

Praveen Chaudhary added 4 commits December 2, 2019 18:16
…config.

From the json format of yang models, a map is created from config DB tables
to container in yang model. Input Config is cropped on based of this map.
Test code for copping config DB.
Minor fixes in other files.
…yang model.

Load data in sonic_yang after transalation.
Test for translation functionality.
Added config DB json sample in yangTest.json.
Blocked other PLY test cases as of now, because they fail with new yang models.
@praveen-li praveen-li changed the title [_sonic_yang_ext.py]: Extend sonic yang class to support cropping of … [_sonic_yang_ext.py]: Extend sonic yang class to support cropping, transalation of … Dec 4, 2019
…ig DB json.

Reverse translation i.e. from YANG json to Config DB json based on yang models.
Find xpath for a port. portleaf and a yang list.
get_data functions to get rev xlated data from data tree.
Test for crop, xlate and rev xlate.
@praveen-li praveen-li changed the title [_sonic_yang_ext.py]: Extend sonic yang class to support cropping, transalation of … [_sonic_yang_ext.py]: Extend sonic yang class to support cropping, transalation, reverse translation of … Dec 4, 2019
Copy link
Collaborator

@li-pingmao li-pingmao left a comment

Choose a reason for hiding this comment

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

will open a separate ticket for generic function to get xpath from table name and key etc

@zhenggen-xu zhenggen-xu merged commit 1b033f0 into zhenggen-xu:sonic-cfg-mgmt Dec 11, 2019
zhenggen-xu pushed a commit that referenced this pull request Jan 10, 2020
…ansalation, reverse translation of … (#11)

* [_sonic_yang_ext.py]: Extend sonic yang class to support cropping of config.

From the json format of yang models, a map is created from config DB tables
to container in yang model. Input Config is cropped on based of this map.

* [test_sonic_yang.py]: Test code for sonic yang extension funtionalities.

Test code for copping config DB.
Minor fixes in other files.

* [_sonic_yang_ext.py]: Translate Config DB format to YANG json as per yang model.

Load data in sonic_yang after transalation.
Test for translation functionality.

* [test_sonic_yang.py]: Add test for translation.

Added config DB json sample in yangTest.json.
Blocked other PLY test cases as of now, because they fail with new yang models.

* [_sonic_yang_ext.py]: Reverse translation i.e. from YANG json to Config DB json.

Reverse translation i.e. from YANG json to Config DB json based on yang models.
Find xpath for a port. portleaf and a yang list.
get_data functions to get rev xlated data from data tree.
Test for crop, xlate and rev xlate.

* [_sonic_yang_ext.py]: Minor changes to handle exceptions.

* [build_debian.sh]: Add neccessary package in sonic image and in sonic slave docker.

Fix the test to accomodate for ip-prefix as of now

* [_sonic_yang_ext.py]: Addressing more exception handling and comments.

Unblocking PLY test cases.

* [setup.py]: Add _sonic_yang_ext.py in package.

* [test_sonic_yang.py]: Fixing test case for delete node.
praveen-li pushed a commit to praveen-li/sonic-buildimage that referenced this pull request Aug 12, 2020
* src/sonic-telemetry fa8d498...3bd7ca3 (4):
  > Update gnmi deps (zhenggen-xu#40)
  > [testdata] Update SFP keys to align with new standard (zhenggen-xu#39)
  > Fixed the parameters for subscribe APIs (zhenggen-xu#38)
  > Azure ro mode (zhenggen-xu#34)

* src/sonic-mgmt-common 444aa9a...cc01ce4 (4):
  > Make gnmi dep version the same as in telemetry repo (zhenggen-xu#17)
  > Cleanup translib and cvl go test cases (zhenggen-xu#13)
  > Package update and enhancements/fixes in YGOT, and Request Binder (zhenggen-xu#12)
  > Translib phase I changes (zhenggen-xu#11)

Note: sonic-telemetry submodule update is dependent upon sonic-mgmt-common submodule update, thus updating both in this patch
li-pingmao pushed a commit to li-pingmao/sonic-buildimage that referenced this pull request Feb 23, 2022
* [BFN] Updated platform APIs impl

Signed-off-by: Andriy Kokhan <andriyx.kokhan@intel.com>

* Extended BFN platform SFP APIs implementation

* Update sfp.py

* [BFN] Extended SFP platform plugin implementation

Signed-off-by: Andriy Kokhan <andriyx.kokhan@intel.com>

* [BFN] Extended Fans platform plugin implementation

* [BFN] divided classes Fan and  FanDrawer into 2 files

* Signed-off-by: Vadym Yashchenko <vadymx.yashchenko@intel.com>

What I did
	Add get_model() function
	Add get_low_critical_threshold() function
	Change __get(...) function.
How I did it
	Differnece from previous implementation of __get(...) function is return real value or -9999.9 if value is not provided by thrift API

* Add get_presence() function and revised __get() function

Signed-off-by: Vadym Yashchenko <vadymx.yashchenko@intel.com>

* [BFN] Updated PSU platform APIs impl

Signed-off-by: Dmytro Lytvynenko <dmytrox.lytvynenko@intel.com>

* Added BFN PSU cache (zhenggen-xu#9)

Signed-off-by: Andriy Kokhan <andriyx.kokhan@intel.com>

* [BFN]  Fans and Fantray platform APIs update (zhenggen-xu#7)

* [BFN] Updated SFP platform APIs (zhenggen-xu#10)

Signed-off-by: Volodymyr Boyko <volodymyrx.boiko@intel.com>

* [BFN] Updated platform API for thermal (zhenggen-xu#8)

* Signed-off-by: Vadym Yashchenko <vadymx.yashchenko@intel.com>

* Revert "[BFN]  Fans and Fantray platform APIs update (zhenggen-xu#7)" (zhenggen-xu#11)

This reverts commit c62a733.

* Add support health monitor system (zhenggen-xu#15)

Signed-off-by: Petro Bratash <petrox.bratash@intel.com>

* Update chassis.py

* [BFN] Updated FANs and FAN Tray platform API (zhenggen-xu#14)

* Fix fix_alignment (zhenggen-xu#17)

Signed-off-by: Petro Bratash <petrox.bratash@intel.com>

* [BFN] Improvement show environment (zhenggen-xu#16)

* Added PSU temperature skip into platform.json (zhenggen-xu#18)

Signed-off-by: Andriy Kokhan <andriyx.kokhan@intel.com>

* Do not skip psud on Newport

Signed-off-by: Andriy Kokhan <andriyx.kokhan@intel.com>

* [BFN] fix fan status from Not OK to Ok (zhenggen-xu#19)

* [BFN] Updated SFP platform plugin (zhenggen-xu#13)

Signed-off-by: Volodymyr Boyko <volodymyrx.boiko@intel.com>

* [DPB] Fix typo for Ethernet0 2x200G[100G,40G] breakout mode (zhenggen-xu#21)

Signed-off-by: Mykola Gerasymenko <mykolax.gerasymenko@intel.com>

* [barefoot] Tmp fix vendor_rev (zhenggen-xu#22)

Signed-off-by: Volodymyr Boyko <volodymyrx.boiko@intel.com>

* Fixed python issues in sonic_platform/fan_drawer.py

Signed-off-by: Andriy Kokhan <andriyx.kokhan@intel.com>

* Updated fan_drawer.py

* Fixing trailing white spaces in fan_drawer.py

* [BFN] Fix thrift for SFPs API

Signed-off-by: Volodymyr Boyko <volodymyrx.boiko@intel.com>

* In platform.json, replaced 'false' with '0' to workaround ast.literal_eval() issue

Signed-off-by: Andriy Kokhan <andriyx.kokhan@intel.com>

* [Newport] Thermal manager  (zhenggen-xu#23)

* Signed-off-by: Vadym Yashchenko <vadymx.yashchenko@intel.com>

* Revert "In platform.json, replaced 'false' with '0' to workaround ast.literal_eval() issue"

This reverts commit 1e73127.

* Removed 'controllable' options from platform.json to fix factory default config generation

Signed-off-by: Andriy Kokhan <andriyx.kokhan@intel.com>

* Update thermal_manager.py

* Migrated SFP plugin to sonic_xcvr API (zhenggen-xu#30)

Signed-off-by: Andriy Kokhan <andriyx.kokhan@intel.com>

Co-authored-by: KostiantynYarovyiBf <kostiantynx.yarovyi@intel.com>
Co-authored-by: Vadym Yashchenko <vadymx.yashchenko@intel.com>
Co-authored-by: Dmytro Lytvynenko <dmytrox.lytvynenko@intel.com>
Co-authored-by: Volodymyr Boiko <volodymyrx.boiko@intel.com>
Co-authored-by: Petro Bratash <petrox.bratash@intel.com>
Co-authored-by: Mykola Gerasymenko <mykolax.gerasymenko@intel.com>
li-pingmao pushed a commit to li-pingmao/sonic-buildimage that referenced this pull request Feb 23, 2022
[sonic-linkmgrd][master] submodule update

Commits added:
0c23756 Jing Zhang      2022-01-19      Linkmgrd subscribing State DB route event  (zhenggen-xu#13)
12b9951 Longxiang Lyu   2021-12-13      Add TLV support to ICMP payload (zhenggen-xu#11)
3eedda3 Longxiang Lyu   2022-01-06      Add missing intermediate states (zhenggen-xu#16)
8da4982 Ying Xie        2022-01-04      [linkmgrd] update README, set coding style guidance (zhenggen-xu#15)
a897cf8 Longxiang Lyu   2021-12-13      Improve PR template (zhenggen-xu#16)
6fec701 Jing Zhang      2021-12-06      Add pull request template for linkmgrd repo (zhenggen-xu#9)


signed-off-by: Jing Zhang zhangjing@microsoft.com
praveen-li pushed a commit to praveen-li/sonic-buildimage that referenced this pull request Dec 23, 2022
[sonic-linkmgrd][master] submodule update

Commits added:
0c23756 Jing Zhang      2022-01-19      Linkmgrd subscribing State DB route event  (zhenggen-xu#13)
12b9951 Longxiang Lyu   2021-12-13      Add TLV support to ICMP payload (zhenggen-xu#11)
3eedda3 Longxiang Lyu   2022-01-06      Add missing intermediate states (zhenggen-xu#16)
8da4982 Ying Xie        2022-01-04      [linkmgrd] update README, set coding style guidance (zhenggen-xu#15)
a897cf8 Longxiang Lyu   2021-12-13      Improve PR template (zhenggen-xu#16)
6fec701 Jing Zhang      2021-12-06      Add pull request template for linkmgrd repo (zhenggen-xu#9)


signed-off-by: Jing Zhang zhangjing@microsoft.com
praveen-li pushed a commit to praveen-li/sonic-buildimage that referenced this pull request Dec 23, 2022
Signed-off-by: ankgoyal <ankgoyal@cisco.com>
zhenggen-xu pushed a commit that referenced this pull request May 24, 2024
Why I did it
Advance dhcpmon to a3c5381 in 202305 branch.

a3c5381 - (HEAD, origin/master, origin/HEAD, master) Merge pull request src: Add libnl3 build.sh script #11 from jcaiMR/dev/jcai_fix_err_log (11 days ago) [StormLiangMS]
c5ef7e7 - Change common_libs dependencies from buster to bullseye (Updating docker-orchagent/syncd Dockerfile and start.sh #9)
824a144 - replace atoi with strtol (Rename hostname #6) (10 weeks ago) [Mai Bui]
32c0c3f - Fix libswsscommon package installation for non-amd64 (README.md leaves out docker-database #7) (10 weeks ago) [Saikrishna Arcot]
Work item tracking
Microsoft ADO (25048723):
How I did it
How to verify it
Run test_dhcp_relay.py, no failure
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.

4 participants