"input": {
"service-reference":"/alto-resourcepool:resource-pool/alto-resourcepool:resource[alto-resourcepool:resource-id='test-model-endpointcost']",
"type":"alto-model-endpointcost:resource-type-endpointcost",
- "endpointcost-request": {
+ "endpointcost-params": {
"cost-type": {
"cost-mode": "ordinal",
"cost-metric": "routingcost"
}
grouping "alto-response-error" {
- container "error" {
- leaf "error-code" {
- type "string";
+ uses "alto-response-base" {
+ augment "response" {
+ case "error-response" {
+ container "error" {
+ leaf "error-code" {
+ type "string";
+ }
+
+ //TODO
+ }
+ }
}
-
- //TODO
}
}
}
output {
- uses "alto-response-base";
- }
- }
-
- augment "/alto-model-base:query/alto-model-base:output/alto-model-base:response" {
- case "error-response" {
uses "alto-response-error";
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.QueryInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.QueryOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.QueryOutputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.query.output.response.ErrorResponseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.alto.response.error.ErrorBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.alto.response.error.response.ErrorResponseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.alto.response.error.response.error.response.ErrorBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.core.resourcepool.rev150921.AltoResourcepoolService;
prefix "alto-model-endpointcost-rfc7285";
- import "alto-basic-types" {
- prefix "alto-types";
- }
-
- import "alto-resourcepool" {
- prefix "alto-resourcpool";
- }
-
- import "alto-model-base" {
- prefix "base";
- }
-
- import "alto-model-networkmap" {
- prefix "networkmap";
- }
-
import "alto-model-endpointcost" {
- prefix "endpointcost";
+ prefix "alto-ecs";
}
import "ietf-inet-types" {
prefix "ietf-inet";
}
+ import yang-ext {
+ prefix ext;
+ }
+
organization "Yale University";
contact "alto-dev@lists.opendaylight.org";
}
}
- identity "filter-type-endpointfilter" {
- base "endpointcost:filter-type-base";
- }
+ augment "/alto-ecs:query/alto-ecs:input/alto-ecs:request/alto-ecs:endpointcost-request/alto-ecs:endpointcost-params/alto-ecs:filter" {
+ ext:augment-identifier "rfc7285-endpoint-filter";
- augment "/base:query/base:input/base:request/endpointcost:endpointcost-request-data/endpointcost:endpointcost-request/endpointcost:filter" {
case "endpoint-filter-data" {
uses "endpoint-filter-data";
}
}
identity "endpointcost-response-type-endpointcostmap" {
- base "endpointcost:endpointcost-response-type-base";
+ base "alto-ecs:endpointcost-response-type-base";
}
grouping "endpointcostmap-response-data" {
container "endpoint-cost-map" {
- list "endpoint-cost-list" {
- uses "typed-address-data";
+ list "endpoint-cost" {
+ container "source" {
+ uses "typed-address-data";
+ }
- list "endpoint-destination-cost" {
+ container "destination" {
uses "typed-address-data";
+ }
- choice "cost" {
- }
+ choice "cost" {
}
}
}
}
- augment "/base:query/base:output/base:response/endpointcost:endpointcost-response-data/endpointcost:endpointcost-response/endpointcost:data/" {
- case "endpoint-cost-map-data" {
+ augment "/alto-ecs:query/alto-ecs:output/alto-ecs:response/alto-ecs:endpointcost-response/alto-ecs:endpointcost-data" {
+ ext:augment-identifier "rfc7285-endpoint-cost-map";
+
+ case "endpoint-costmap-data" {
uses "endpointcostmap-response-data";
}
}
}
}
- augment "/base:query/base:input/base:request/endpointcost:endpointcost-request-data/endpointcost:endpointcost-request/endpointcost:filter/endpoint-filter-data/endpoint-filter/source/address" {
+ augment "/alto-ecs:query/alto-ecs:input/alto-ecs:request/alto-ecs:endpointcost-request/alto-ecs:endpointcost-params/alto-ecs:filter/endpoint-filter-data/endpoint-filter/source/address" {
+ ext:augment-identifier "rfc7285-endpoint-filter-source";
+
case ipv4 {
uses "ipv4-address-data";
}
}
}
- augment "/base:query/base:input/base:request/endpointcost:endpointcost-request-data/endpointcost:endpointcost-request/endpointcost:filter/endpoint-filter-data/endpoint-filter/destination/address" {
+ augment "/alto-ecs:query/alto-ecs:input/alto-ecs:request/alto-ecs:endpointcost-request/alto-ecs:endpointcost-params/alto-ecs:filter/endpoint-filter-data/endpoint-filter/destination/address" {
+ ext:augment-identifier "rfc7285-endpoint-filter-destination";
case ipv4 {
uses "ipv4-address-data";
}
}
}
+ augment "/alto-ecs:query/alto-ecs:output/alto-ecs:response/alto-ecs:endpointcost-response/alto-ecs:endpointcost-data/endpoint-costmap-data/endpoint-cost-map/endpoint-cost/source/address" {
+ ext:augment-identifier "rfc7285-endpoint-costmap-source";
- augment "/base:query/base:output/base:response/endpointcost:endpointcost-response-data/endpointcost:endpointcost-response/endpointcost:data/endpoint-cost-map-data/endpoint-cost-map/endpoint-cost-list/address" {
case ipv4 {
uses "ipv4-address-data";
}
}
}
- augment "/base:query/base:output/base:response/endpointcost:endpointcost-response-data/endpointcost:endpointcost-response/endpointcost:data/endpoint-cost-map-data/endpoint-cost-map/endpoint-cost-list/endpoint-destination-cost/address" {
+
+ augment "/alto-ecs:query/alto-ecs:output/alto-ecs:response/alto-ecs:endpointcost-response/alto-ecs:endpointcost-data/endpoint-costmap-data/endpoint-cost-map/endpoint-cost/destination/address" {
+ ext:augment-identifier "rfc7285-endpoint-costmap-destination";
+
case ipv4 {
uses "ipv4-address-data";
}
}
}
- augment "/base:query/base:output/base:response/endpointcost:endpointcost-response-data/endpointcost:endpointcost-response/endpointcost:data/endpoint-cost-map-data/endpoint-cost-map/endpoint-cost-list/endpoint-destination-cost/cost" {
+ augment "/alto-ecs:query/alto-ecs:output/alto-ecs:response/alto-ecs:endpointcost-response/alto-ecs:endpointcost-data/endpoint-costmap-data/endpoint-cost-map/endpoint-cost/cost" {
+ ext:augment-identifier "rfc7825-endpoint-costmap-cost";
+
case numerical {
leaf "cost" {
type decimal64 {
}
import "alto-resourcepool" {
- prefix "alto-resourcpool";
+ prefix "alto-resourcepool";
}
import "alto-model-base" {
}
}
- identity "filter-type-base" {
- description
- "Base type for endpoint cost filters";
- }
-
grouping "endpointcost-request-data" {
- container "endpointcost-request" {
+ container "endpointcost-params" {
uses "cost-type-data";
leaf-list "constraints" {
}
grouping "endpointcost-response-data" {
- container "endpointcost-response" {
- uses "cost-type-data";
+ choice "endpointcost-data" {
+ }
+ }
- choice "data" {
+ grouping "alto-request-endpointcost" {
+ uses "base:alto-request-base" {
+ augment "request" {
+ case "endpointcost-request" {
+ uses "endpointcost-request-data";
+ }
}
}
}
- augment "/base:query/base:input/base:request" {
- case "endpointcost-request-data" {
- uses "endpointcost-request-data";
+ grouping "alto-response-endpointcost" {
+ uses "base:alto-response-error" {
+ augment "response" {
+ case "endpointcost-response" {
+ uses "endpointcost-response-data";
+ }
+ }
}
}
- augment "/base:query/base:output/base:response" {
- case "endpointcost-response-data" {
- uses "endpointcost-response-data";
+ rpc query {
+ input {
+ uses "alto-request-endpointcost";
+ }
+
+ output {
+ uses "alto-response-endpointcost";
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.core.types.rev150921.CostMetric;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.core.types.rev150921.ResourceId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.AltoModelEndpointcostService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.QueryInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.QueryOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.QueryOutputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.ResourceTypeEndpointcost;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.alto.request.endpointcost.request.EndpointcostRequest;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.cost.type.data.CostType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.cost.type.data.CostTypeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.endpointcost.request.data.EndpointcostRequest;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.endpointcost.response.data.EndpointcostResponseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.query.input.request.EndpointcostRequestData;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.query.output.response.EndpointcostResponseDataBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.endpointcost.request.data.EndpointcostParams;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.verify.resource.input.capability.spec.CostTypeSpecBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.Ipv4AddressData;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.Ipv6AddressData;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.TypedAddressData;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.endpoint.filter.data.EndpointFilter;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.endpointcostmap.response.data.EndpointCostMapBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.endpointcostmap.response.data.endpoint.cost.map.EndpointCostList;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.endpointcostmap.response.data.endpoint.cost.map.EndpointCostListBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.endpointcostmap.response.data.endpoint.cost.map.endpoint.cost.list.EndpointDestinationCost;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.endpointcostmap.response.data.endpoint.cost.map.endpoint.cost.list.EndpointDestinationCostBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.endpointcostmap.response.data.endpoint.cost.map.endpoint.cost.list.endpoint.destination.cost.Cost;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.input.request.endpointcost.request.data.endpointcost.request.filter.EndpointFilterData;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.data.endpointcost.response.data.EndpointCostMapDataBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.endpointcostmap.response.data.endpoint.cost.map.EndpointCost;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.endpointcostmap.response.data.endpoint.cost.map.EndpointCostBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.endpointcostmap.response.data.endpoint.cost.map.endpoint.cost.Cost;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.endpointcostmap.response.data.endpoint.cost.map.endpoint.cost.DestinationBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.endpointcostmap.response.data.endpoint.cost.map.endpoint.cost.SourceBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.input.request.endpointcost.request.endpointcost.params.filter.EndpointFilterData;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.endpointcost.data.endpoint.costmap.data.endpoint.cost.map.endpoint.cost.cost.NumericalBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.endpointcost.data.endpoint.costmap.data.endpoint.cost.map.endpoint.cost.cost.OrdinalBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.endpointcost.data.EndpointCostmapDataBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.typed.address.data.Address;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rev151021.alto.response.endpointcost.response.EndpointcostResponseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.AltoModelBaseService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.QueryInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.QueryOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.QueryOutputBuilder;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class AltoEndpointCostProvider implements BindingAwareProvider, AutoCloseable, AltoModelBaseService {
+public class AltoEndpointCostProvider implements BindingAwareProvider, AutoCloseable, AltoModelEndpointcostService {
private static final Logger LOG = LoggerFactory.getLogger(AltoEndpointCostProvider.class);
private DataBroker m_dataBrokerService = null;
- private RoutedRpcRegistration<AltoModelBaseService> m_serviceReg = null;
+ private RoutedRpcRegistration<AltoModelEndpointcostService> m_serviceReg = null;
private AltoResourcepoolService m_resourcepoolService = null;
private static final ResourceId TEST_ENDPOINTCOST_RID = new ResourceId("test-model-endpointcost");
LOG.info("AltoModelEndpointCostProvider Session Initiated");
m_dataBrokerService = session.getSALService(DataBroker.class);
- m_serviceReg = session.addRoutedRpcImplementation(AltoModelBaseService.class, this);
+ m_serviceReg = session.addRoutedRpcImplementation(AltoModelEndpointcostService.class, this);
CostTypeBuilder ctBuilder = new CostTypeBuilder();
ctBuilder.setCostMetric(COST_METRIC_ROUTINGCOST);
}
protected Cost createNumericalCost(double cost) {
- org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.data.endpointcost.response.data.endpoint.cost.map.data.endpoint.cost.map.endpoint.cost.list.endpoint.destination.cost.cost.NumericalBuilder builder;
- builder = new org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.data.endpointcost.response.data.endpoint.cost.map.data.endpoint.cost.map.endpoint.cost.list.endpoint.destination.cost.cost.NumericalBuilder();
+ NumericalBuilder builder;
+ builder = new NumericalBuilder();
builder.setCost(new BigDecimal(cost));
return builder.build();
}
protected Cost createOrdinalCost(int order) {
- org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.data.endpointcost.response.data.endpoint.cost.map.data.endpoint.cost.map.endpoint.cost.list.endpoint.destination.cost.cost.OrdinalBuilder builder;
- builder = new org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.data.endpointcost.response.data.endpoint.cost.map.data.endpoint.cost.map.endpoint.cost.list.endpoint.destination.cost.cost.OrdinalBuilder();
+ OrdinalBuilder builder;
+ builder = new OrdinalBuilder();
builder.setCost(order);
return builder.build();
protected Address createSourceAddress(Address from) {
if (from instanceof Ipv4AddressData) {
- org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.data.endpointcost.response.data.endpoint.cost.map.data.endpoint.cost.map.endpoint.cost.list.address.Ipv4Builder builder;
- builder = new org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.data.endpointcost.response.data.endpoint.cost.map.data.endpoint.cost.map.endpoint.cost.list.address.Ipv4Builder();
+ org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.endpointcost.data.endpoint.costmap.data.endpoint.cost.map.endpoint.cost.source.address.Ipv4Builder builder;
+ builder = new org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.endpointcost.data.endpoint.costmap.data.endpoint.cost.map.endpoint.cost.source.address.Ipv4Builder();
builder.fieldsFrom((Ipv4AddressData)from);
return builder.build();
} else if (from instanceof Ipv6AddressData) {
- org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.data.endpointcost.response.data.endpoint.cost.map.data.endpoint.cost.map.endpoint.cost.list.address.Ipv6Builder builder;
- builder = new org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.data.endpointcost.response.data.endpoint.cost.map.data.endpoint.cost.map.endpoint.cost.list.address.Ipv6Builder();
+ org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.endpointcost.data.endpoint.costmap.data.endpoint.cost.map.endpoint.cost.source.address.Ipv6Builder builder;
+ builder = new org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.endpointcost.data.endpoint.costmap.data.endpoint.cost.map.endpoint.cost.source.address.Ipv6Builder();
builder.fieldsFrom((Ipv6AddressData)from);
return builder.build();
protected Address createDestinationAddress(Address from) {
if (from instanceof Ipv4AddressData) {
- org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.data.endpointcost.response.data.endpoint.cost.map.data.endpoint.cost.map.endpoint.cost.list.endpoint.destination.cost.address.Ipv4Builder builder;
- builder = new org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.data.endpointcost.response.data.endpoint.cost.map.data.endpoint.cost.map.endpoint.cost.list.endpoint.destination.cost.address.Ipv4Builder();
+ org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.endpointcost.data.endpoint.costmap.data.endpoint.cost.map.endpoint.cost.destination.address.Ipv4Builder builder;
+ builder = new org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.endpointcost.data.endpoint.costmap.data.endpoint.cost.map.endpoint.cost.destination.address.Ipv4Builder();
builder.fieldsFrom((Ipv4AddressData)from);
return builder.build();
} else if (from instanceof Ipv6AddressData) {
- org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.data.endpointcost.response.data.endpoint.cost.map.data.endpoint.cost.map.endpoint.cost.list.endpoint.destination.cost.address.Ipv6Builder builder;
- builder = new org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.data.endpointcost.response.data.endpoint.cost.map.data.endpoint.cost.map.endpoint.cost.list.endpoint.destination.cost.address.Ipv6Builder();
+ org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.endpointcost.data.endpoint.costmap.data.endpoint.cost.map.endpoint.cost.destination.address.Ipv6Builder builder;
+ builder = new org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.endpointcost.rfc7285.rev151021.query.output.response.endpointcost.response.endpointcost.data.endpoint.costmap.data.endpoint.cost.map.endpoint.cost.destination.address.Ipv6Builder();
builder.fieldsFrom((Ipv6AddressData)from);
return builder.build();
- }
+}
return null;
}
if (!input.getType().equals(ResourceTypeEndpointcost.class)) {
return RpcResultBuilder.<QueryOutput>failed().buildFuture();
}
- EndpointcostRequestData requestData = (EndpointcostRequestData)input.getRequest();
- EndpointcostRequest request = requestData.getEndpointcostRequest();
- CostType costType = request.getCostType();
+ EndpointcostRequest request = (EndpointcostRequest)input.getRequest();
+ EndpointcostParams params = request.getEndpointcostParams();
- if (!(request.getFilter() instanceof EndpointFilterData)) {
- return RpcResultBuilder.<QueryOutput>failed().buildFuture();
- }
+ CostType costType = params.getCostType();
if (!costType.getCostMode().equals("ordinal")) {
LOG.warn(costType.getCostMode().toString());
return RpcResultBuilder.<QueryOutput>failed().buildFuture();
return RpcResultBuilder.<QueryOutput>failed().buildFuture();
}
- EndpointFilter filter = ((EndpointFilterData)request.getFilter()).getEndpointFilter();
+ if (!(params.getFilter() instanceof EndpointFilterData)) {
+ return RpcResultBuilder.<QueryOutput>failed().buildFuture();
+ }
+
+ EndpointFilter filter = ((EndpointFilterData)params.getFilter()).getEndpointFilter();
List<? extends TypedAddressData> source = filter.getSource();
List<? extends TypedAddressData> destination = filter.getDestination();
int order = 0;
- LinkedList<EndpointCostList> eclList = new LinkedList<EndpointCostList>();
+ LinkedList<EndpointCost> ecList = new LinkedList<EndpointCost>();
for (TypedAddressData src: source) {
- LinkedList<EndpointDestinationCost> edcList = new LinkedList<EndpointDestinationCost>();
for (TypedAddressData dst: destination) {
- EndpointDestinationCostBuilder edcBuilder = new EndpointDestinationCostBuilder();
+ SourceBuilder srcBuilder = new SourceBuilder();
+ srcBuilder.setAddress(createSourceAddress(src.getAddress()));
- edcBuilder.setAddress(createDestinationAddress(dst.getAddress()));
- edcBuilder.setCost(createOrdinalCost(++order));
+ DestinationBuilder dstBuilder = new DestinationBuilder();
+ dstBuilder.setAddress(createDestinationAddress(dst.getAddress()));
- edcList.add(edcBuilder.build());
- }
- EndpointCostListBuilder eclBuilder = new EndpointCostListBuilder();
- eclBuilder.setAddress(createSourceAddress(src.getAddress()));
- eclBuilder.setEndpointDestinationCost(edcList);
+ EndpointCostBuilder ecBuilder = new EndpointCostBuilder();
+ ecBuilder.setSource(srcBuilder.build());
+ ecBuilder.setDestination(dstBuilder.build());
+ ecBuilder.setCost(createOrdinalCost(++order));
- eclList.add(eclBuilder.build());
+ ecList.add(ecBuilder.build());
+ }
}
EndpointCostMapBuilder ecmBuilder = new EndpointCostMapBuilder();
- ecmBuilder.setEndpointCostList(eclList);
+ ecmBuilder.setEndpointCost(ecList);
- EndpointCostMapDataBuilder ecmdBuilder = new EndpointCostMapDataBuilder();
+ EndpointCostmapDataBuilder ecmdBuilder = new EndpointCostmapDataBuilder();
ecmdBuilder.setEndpointCostMap(ecmBuilder.build());
- EndpointcostResponseBuilder ecsBuilder = new EndpointcostResponseBuilder();
- ecsBuilder.setCostType(costType);
- ecsBuilder.setData(ecmdBuilder.build());
-
- EndpointcostResponseDataBuilder ecrdBuilder = new EndpointcostResponseDataBuilder();
- ecrdBuilder.setEndpointcostResponse(ecsBuilder.build());
+ EndpointcostResponseBuilder ecrBuilder = new EndpointcostResponseBuilder();
+ ecrBuilder.setEndpointcostData(ecmdBuilder.build());
QueryOutputBuilder builder = new QueryOutputBuilder();
- builder.setType(ResourceTypeEndpointcost.class).setResponse(ecrdBuilder.build());
+ builder.setType(ResourceTypeEndpointcost.class).setResponse(ecrBuilder.build());
return RpcResultBuilder.<QueryOutput>success(builder.build()).buildFuture();
}
--- /dev/null
+module alto-model-networkmap-rfc7285 {
+
+ yang-version 1;
+
+ namespace "urn:opendaylight:alto:service:model:networkmap:rfc7285";
+
+ prefix "alto-model-networkmap-rfc7285";
+
+ import "alto-model-networkmap" {
+ prefix "alto-nm";
+ }
+
+ import "ietf-inet-types" {
+ prefix "ietf-inet";
+ }
+
+ import yang-ext {
+ prefix ext;
+ }
+
+ organization "Yale University";
+
+ contact "alto-dev@lists.opendaylight.org";
+
+ revision "2015-10-21" {
+ description "Initial revision of alto networkmap";
+ }
+
+
+ augment "/alto-nm:query/alto-nm:output/alto-nm:response/alto-nm:networkmap-response/alto-nm:network-map/alto-nm:partition" {
+ ext:augment-identifier "ipv4-prefix-list";
+
+ leaf-list "ipv4" {
+ type ietf-inet:ipv4-prefix;
+ }
+ }
+
+ augment "/alto-nm:query/alto-nm:output/alto-nm:response/alto-nm:networkmap-response/alto-nm:network-map/alto-nm:partition" {
+ ext:augment-identifier "ipv6-prefix-list";
+
+ leaf-list "ipv6" {
+ type ietf-inet:ipv6-prefix;
+ }
+ }
+
+}
module alto-model-networkmap {
+
yang-version 1;
namespace "urn:opendaylight:alto:service:model:networkmap";
prefix "base";
}
- import "ietf-inet-types" {
- prefix "ietf-inet";
- }
-
- import yang-ext {
- prefix ext;
- }
-
organization "Yale University";
contact "alto-dev@lists.opendaylight.org";
leaf "pid" {
type "alto-types:pid-name";
}
+ }
+ }
+ }
- list "property" {
- key "property-type";
-
- leaf "property-type" {
- type identityref {
- base "property-type-base";
- }
- }
-
- choice "data" {
- }
+ grouping "alto-request-networkmap" {
+ uses "base:alto-request-base" {
+ augment "request" {
+ case "networkmap-request" {
+ uses "networkmap-request-data";
}
}
}
}
- augment "/base:query/base:input/base:request" {
- ext:augment-identifier "alto-networkmap-request";
-
- case "alto-networkmap-request" {
- uses "networkmap-request-data";
+ grouping "alto-response-networkmap" {
+ uses "base:alto-response-error" {
+ augment "response" {
+ case "networkmap-response" {
+ uses "networkmap-response-data";
+ }
+ }
}
}
- augment "/base:query/base:output/base:response" {
- ext:augment-identifier "alto-networkmap-response";
- case "alto-networkmap-response" {
- uses "networkmap-response-data";
+ rpc query {
+ input {
+ uses "alto-request-networkmap";
+ }
+
+ output {
+ uses "alto-response-networkmap";
}
}
"Address type for IPv6";
}
- augment "/base:query/base:output/base:response/alto-networkmap-response/network-map/partition/property/data" {
- ext:augment-identifier "rfc7285-networkmap-property-data";
-
- case ipv4 {
- leaf-list "ipv4" {
- type ietf-inet:ipv4-prefix;
- }
- }
-
- case ipv6 {
- leaf-list "ipv6" {
- type ietf-inet:ipv6-prefix;
- }
- }
- }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.AddressTypeBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.AddressTypeIpv4;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.AddressTypeIpv6;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.AltoModelNetworkmapService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.QueryInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.QueryOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.QueryOutputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.ResourceTypeNetworkmap;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.alto.request.networkmap.request.NetworkmapRequest;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.alto.response.networkmap.response.NetworkmapResponseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.networkmap.request.data.NetworkmapFilter;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.networkmap.response.data.NetworkMapBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.networkmap.response.data.network.map.Partition;
import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.networkmap.response.data.network.map.PartitionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.networkmap.response.data.network.map.partition.Property;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.networkmap.response.data.network.map.partition.PropertyBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.query.input.request.AltoNetworkmapRequest;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.query.output.response.AltoNetworkmapResponseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.query.output.response.alto.networkmap.response.network.map.partition.property.data.Ipv4Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rev151021.query.output.response.alto.networkmap.response.network.map.partition.property.data.Ipv6Builder;
-
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.AltoModelBaseService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.QueryInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.QueryOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.rev151021.QueryOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rfc7285.rev151021.Ipv4PrefixList;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rfc7285.rev151021.Ipv4PrefixListBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rfc7285.rev151021.Ipv6PrefixList;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.model.networkmap.rfc7285.rev151021.Ipv6PrefixListBuilder;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class AltoNetworkmapProvider implements BindingAwareProvider, AutoCloseable, AltoModelBaseService {
+public class AltoNetworkmapProvider implements BindingAwareProvider, AutoCloseable, AltoModelNetworkmapService {
private static final Logger LOG = LoggerFactory.getLogger(AltoNetworkmapProvider.class);
private DataBroker m_dataBrokerService = null;
- private RoutedRpcRegistration<AltoModelBaseService> m_serviceReg = null;
+ private RoutedRpcRegistration<AltoModelNetworkmapService> m_serviceReg = null;
private AltoResourcepoolService m_resourcepoolService = null;
private static final ResourceId TEST_NETWORKMAP_RID = new ResourceId("test-model-networkmap");
LOG.info("AltoModelNetworkProvider Session Initiated");
m_dataBrokerService = session.getSALService(DataBroker.class);
- m_serviceReg = session.addRoutedRpcImplementation(AltoModelBaseService.class, this);
+ m_serviceReg = session.addRoutedRpcImplementation(AltoModelNetworkmapService.class, this);
ResourceBuilder builder = new ResourceBuilder();
builder.setResourceId(TEST_NETWORKMAP_RID).setType(ResourceTypeNetworkmap.class);
if (!input.getType().equals(ResourceTypeNetworkmap.class)) {
return RpcResultBuilder.<QueryOutput>failed().buildFuture();
}
- AltoNetworkmapRequest request = (AltoNetworkmapRequest)input.getRequest();
+ NetworkmapRequest request = (NetworkmapRequest)input.getRequest();
NetworkmapFilter filter = request.getNetworkmapFilter();
List<PidName> pids = filter.getPid();
List<Class<? extends AddressTypeBase>> types = filter.getAddressType();
+ List<Partition> partitionList = new LinkedList<>();
int index = 0;
- LinkedList<Partition> partitionList = new LinkedList<Partition>();
for (PidName pid: pids) {
++index;
- LinkedList<Property> propertyList = new LinkedList<Property>();
+ PartitionBuilder partitionBuilder = new PartitionBuilder();
+ partitionBuilder.setPid(pid);
+
if (types.contains(AddressTypeIpv4.class)) {
LinkedList<Ipv4Prefix> ipv4List = new LinkedList<Ipv4Prefix>();
ipv4List.add(new Ipv4Prefix("192.168." + index + ".0/24"));
- Ipv4Builder v4Builder = new Ipv4Builder();
+ Ipv4PrefixListBuilder v4Builder = new Ipv4PrefixListBuilder();
v4Builder.setIpv4(ipv4List);
- PropertyBuilder v4PropertyBuilder = new PropertyBuilder();
- v4PropertyBuilder.setPropertyType(AddressTypeIpv4.class).setData(v4Builder.build());
- propertyList.add(v4PropertyBuilder.build());
+ partitionBuilder.addAugmentation(Ipv4PrefixList.class, v4Builder.build());
}
if (types.contains(AddressTypeIpv6.class)) {
LinkedList<Ipv6Prefix> ipv6List = new LinkedList<Ipv6Prefix>();
ipv6List.add(new Ipv6Prefix("2001:b8:ca2:" + index + "::0/64"));
- Ipv6Builder v6Builder = new Ipv6Builder();
+ Ipv6PrefixListBuilder v6Builder = new Ipv6PrefixListBuilder();
v6Builder.setIpv6(ipv6List);
- PropertyBuilder v6PropertyBuilder = new PropertyBuilder();
- v6PropertyBuilder.setPropertyType(AddressTypeIpv6.class).setData(v6Builder.build());
- propertyList.add(v6PropertyBuilder.build());
+ partitionBuilder.addAugmentation(Ipv6PrefixList.class, v6Builder.build());
}
- PartitionBuilder partitionBuilder = new PartitionBuilder();
- partitionBuilder.setProperty(propertyList).setPid(pid);
-
partitionList.add(partitionBuilder.build());
}
NetworkMapBuilder nmBuilder = new NetworkMapBuilder();
nmBuilder.setPartition(partitionList);
- AltoNetworkmapResponseBuilder nmrBuilder = new AltoNetworkmapResponseBuilder();
+ NetworkmapResponseBuilder nmrBuilder = new NetworkmapResponseBuilder();
nmrBuilder.setNetworkMap(nmBuilder.build());
QueryOutputBuilder builder = new QueryOutputBuilder();