package org.opendaylight.neutron.transcriber;
import com.google.common.collect.ImmutableBiMap;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.neutron.northbound.api.BadRequestException;
import org.opendaylight.neutron.spi.INeutronSFCFlowClassifierCRUD;
import org.opendaylight.neutron.spi.NeutronSFCFlowClassifier;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
/**
* Created by Anil Vishnoi (avishnoi@Brocade.com) on 6/24/16.
*/
.put(EthertypeV6.class,"IPv6")
.build();
- private static final ImmutableBiMap<Class<? extends ProtocolBase>,String> PROTOCOL_MAP
- = new ImmutableBiMap.Builder<Class<? extends ProtocolBase>,String>()
- .put(ProtocolTcp.class,"TCP")
- .put(ProtocolUdp.class,"UDP")
- .put(ProtocolIcmp.class,"ICMP")
- .build();
+ private static final ImmutableBiMap<Class<? extends ProtocolBase>,
+ String> PROTOCOL_MAP = new ImmutableBiMap.Builder<Class<? extends ProtocolBase>, String>()
+ .put(ProtocolTcp.class, "tcp").put(ProtocolUdp.class, "udp").put(ProtocolIcmp.class, "icmp")
+ .build();
NeutronSFCFlowClassifierInterface(DataBroker db) {
super(db);
result.setEthertype(mapper.get(neutronClassifier.getEthertype()));
}
- if(neutronClassifier.getProtocol() != null) {
- final ImmutableBiMap<String, Class<? extends ProtocolBase>> mapper =
- PROTOCOL_MAP.inverse();
- result.setProtocol(mapper.get(neutronClassifier.getProtocol()));
+ if (neutronClassifier.getProtocol() != null) {
+ final ImmutableBiMap<String, Class<? extends ProtocolBase>> mapper = PROTOCOL_MAP.inverse();
+ Class<? extends ProtocolBase> protocol = mapper.get(neutronClassifier.getProtocol());
+ if (protocol != null) {
+ result.setProtocol(protocol);
+ } else {
+ throw new BadRequestException("Protocol {" + neutronClassifier.getProtocol() + "} is not supported");
+ }
}
if(neutronClassifier.getSourcePortRangeMin() != null) {
result.setSourcePortRangeMin(neutronClassifier.getSourcePortRangeMin());