module neutron-gbp-mapper { yang-version 1; namespace "urn:opendaylight:groupbasedpolicy:neutron-gbp-mapper"; prefix "neutron-gbp-mapper"; import gbp-common {prefix gbp-common;} import endpoint {prefix gbp-endpoint;} import ietf-inet-types {prefix inet;} description "This module defines the mapping model between Neutron entities and GBP entities."; revision "2015-05-13" { description "Initial revision."; } grouping neutron-port-key { leaf port-id { description "A unique ID for the neutron port"; type gbp-common:unique-id; } } grouping internal-port-floating-ip-port-association-fields { leaf floating-ip-port-id { description "A unique ID for the neutron port"; type gbp-common:unique-id; mandatory true; } leaf floating-ip-port-ip-address { type inet:ip-address; mandatory true; } leaf internal-port-id { description "A unique ID for the neutron port"; type gbp-common:unique-id; mandatory true; } leaf internal-port-ip-address { type inet:ip-address; mandatory true; } } container mappings { description "Mapping of neutron entities by groupbasedpolicy entities and vice versa."; config false; container neutron-by-gbp-mappings { description "Neutron entities by groupbasedpolicy entities"; container ports-by-endpoints { description "Neutron ports by groupbasedpolicy endpoint"; list port-by-endpoint { description "Neutron port key by groupbasedpolicy endpoint key"; key "l2-context mac-address"; uses gbp-endpoint:l2-key; uses neutron-port-key; } } container router-gateway-ports-by-endpoints { description "Neutron router gateway ports by groupbasedpolicy endpoint"; list router-gateway-port-by-endpoint { description "Neutron router gateway port key by groupbasedpolicy endpoint key"; key "l2-context mac-address"; uses gbp-endpoint:l2-key; uses neutron-port-key; } } container router-interface-ports-by-endpoints { description "Neutron router interface ports by groupbasedpolicy endpoint"; list router-interface-port-by-endpoint { description "Neutron router interface port key by groupbasedpolicy endpoint key"; key "l2-context mac-address"; uses gbp-endpoint:l2-key; uses neutron-port-key; } } container floating-ip-ports-by-endpoints { description "Neutron floating IP ports by groupbasedpolicy endpoint"; list floating-ip-port-by-endpoint { description "Neutron floating ip port key by groupbasedpolicy endpoint key"; key "l2-context mac-address"; uses gbp-endpoint:l2-key; uses neutron-port-key; } } container external-gateways-as-l3-endpoints { description "L3Endpoints that represent Neutron External Gateways for External Subnets. Please note these ARE NOT Neutron router ports, they are outside of Neutron."; list external-gateway-as-l3-endpoint { description "L3Endpoints that represent Neutron External Gateways for External Subnets. Please note these ARE NOT Neutron router ports, they are outside of Neutron."; key "l3-context ip-address"; uses gbp-endpoint:l3-key; } } } container gbp-by-neutron-mappings { description "Groupbasedpolicy entities by neutron entities"; container endpoints-by-ports { description "Groupbasedpolicy endpoints by neutron ports"; list endpoint-by-port { description "Groupbasedpolicy endpoint key by neutron port key"; key port-id; uses neutron-port-key; uses gbp-endpoint:l2-key; } } container endpoints-by-router-gateway-ports { description "Groupbasedpolicy endpoints by neutron router gateway ports"; list endpoint-by-router-gateway-port { description "Groupbasedpolicy endpoint key by neutron router gateway port key"; key port-id; uses neutron-port-key; uses gbp-endpoint:l2-key; } } container endpoints-by-router-interface-ports { description "Groupbasedpolicy endpoints by neutron router interface ports"; list endpoint-by-router-interface-port { description "Groupbasedpolicy endpoint key by neutron router interface port key"; key port-id; uses neutron-port-key; uses gbp-endpoint:l2-key; } } container endpoints-by-floating-ip-ports { description "Groupbasedpolicy endpoints by neutron floating IP ports"; list endpoint-by-floating-ip-port { description "Groupbasedpolicy endpoint key by neutron floating IP port key"; key port-id; uses neutron-port-key; uses gbp-endpoint:l2-key; } } } container floating-ip-association-mappings { description "Mapping of association between neutron port representing floating IP and internal neutron port"; container internal-ports-by-floating-ip-ports { list internal-port-by-floating-ip-port { key floating-ip-port-id; uses internal-port-floating-ip-port-association-fields; } } container floating-ip-ports-by-internal-ports { list floating-ip-port-by-internal-port { key internal-port-id; uses internal-port-floating-ip-port-association-fields; } } } } }