/* Copyright (c) 2016 Dell Inc. and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html */ module ipv6-neighbor-discovery { yang-version 1; namespace "urn:opendaylight:genius:ipv6:nd:packet"; prefix nd; import ietf-yang-types {prefix yang; revision-date "2013-07-15";} import ietf-inet-types { prefix inet; revision-date 2013-07-15; } revision 2016-06-20 { description "ND informational message packets"; } grouping ethernet-header { leaf source-mac { type yang:mac-address; } leaf destination-mac { type yang:mac-address; } leaf ethertype { type uint16; } } grouping ipv6-header { leaf version { type uint8; } leaf flow-label { type uint32; } leaf ipv6-length { type uint16; } leaf next-header { type uint8; } leaf hop-limit { type uint8; } leaf source-ipv6 { type inet:ipv6-address; } leaf destination-ipv6 { type inet:ipv6-address; } } grouping icmp6-header { leaf icmp6-type { type uint8; } leaf icmp6-code { type uint8; } leaf icmp6-chksum { type uint16; } } container neighbor-solicitation-packet { uses ethernet-header; uses ipv6-header; uses icmp6-header; leaf reserved { type uint32; } leaf target-ip-address { type inet:ipv6-address; } leaf option-type { type uint8; } leaf source-addr-length { type uint8; } leaf source-ll-address { type yang:mac-address; } } container neighbor-advertise-packet { uses ethernet-header; uses ipv6-header; uses icmp6-header; leaf flags { type uint32; } leaf target-address { type inet:ipv6-address; } leaf option-type { type uint8; } leaf target-addr-length { type uint8; } leaf target-ll-address { type yang:mac-address; } } container router-solicitation-packet { uses ethernet-header; uses ipv6-header; uses icmp6-header; leaf reserved { type uint32; } leaf option-type { type uint8; } leaf source-addr-length { type uint8; } leaf source-ll-address { type yang:mac-address; } } container router-advertisement-packet { uses ethernet-header; uses ipv6-header; uses icmp6-header; leaf cur-hop-limit { type uint8; } leaf flags { type uint8; } leaf router-lifetime { type uint16; } leaf reachable-time { type uint32; } leaf retrans-time { type uint32; } leaf option-source-addr { type uint8; } leaf source-addr-length { type uint8; } leaf source-ll-address { type yang:mac-address; } leaf option-mtu { type uint8; } leaf option-mtu-length { type uint8; } leaf mtu { type uint32; } list prefix-list { key "prefix"; leaf option-type { type uint8; } leaf option-length { type uint8; } leaf prefix-length { type uint8; } leaf flags { type uint8; } leaf valid-lifetime { type uint32; } leaf preferred-lifetime { type uint32; } leaf reserved { type uint32; } leaf prefix { type inet:ipv6-prefix; } } } }