@Override protected void checkPresenceOfRequiredParams(Map<String, ParameterValue> params) { if (params.get(IpProtoClassifierDefinition.PROTO_PARAM) == null) { throw new IllegalArgumentException( "Parameter " + IpProtoClassifierDefinition.PROTO_PARAM + " not specified."); } if (params.get(IpProtoClassifierDefinition.PROTO_PARAM).getIntValue() == null) { throw new IllegalArgumentException( "Value of " + IpProtoClassifierDefinition.PROTO_PARAM + " parameter is not present."); } }
private static boolean isSrcOrDstPortParam(ParameterValue pv) { String pvName = pv.getName().getValue(); return pv.getIntValue() != null && (pvName.equals(L4ClassifierDefinition.SRC_PORT_PARAM) || pvName.equals(L4ClassifierDefinition.DST_PORT_PARAM)); }
private void addToPortSet(Map<String, ParameterValue> params, String portParam, String portRangeParam, Set<Long> portSet) { if (params.get(portParam) != null) { portSet.add(params.get(portParam).getIntValue()); } else if (params.get(portRangeParam) != null) { portSet.addAll(createSetFromRange(params.get(portRangeParam).getRangeValue())); } }
private static boolean isRangePortParam(ParameterValue pv) { String pvName = pv.getName().getValue(); return pv.getRangeValue() != null && (pvName.equals(L4ClassifierDefinition.SRC_PORT_RANGE_PARAM) || pvName.equals(L4ClassifierDefinition.DST_PORT_RANGE_PARAM)); }
if (paramsFromClassifier.get(v.getName().getValue()) == null) { if (v.getIntValue() != null || v.getStringValue() != null || v.getRangeValue() != null) { paramsFromClassifier.put(v.getName().getValue(), v); if (!paramsFromClassifier.get(v.getName().getValue()).equals(v)) { throw new IllegalArgumentException("Classification error in rule: " + rule.getName() + ".\nCause: " + "Classification conflict detected at parameter " + v.getName());
if (actionInstance.getParameterValue() != null) { for (ParameterValue v : actionInstance.getParameterValue()) { if (v.getName() == null) continue; if (v.getIntValue() != null) { params.put(v.getName().getValue(), v.getIntValue()); } else if (v.getStringValue() != null) { params.put(v.getName().getValue(), v.getStringValue());
private List<String> getSymetricChainNames(ActionInstance action) { List<String> chainNames = new ArrayList<>(); for (ParameterValue param : action.getParameterValue()) { if (param.getStringValue() != null && param.getName().getValue().equals(ChainActionDefinition.SFC_CHAIN_NAME)) { String chainName = param.getStringValue(); ServiceFunctionPath sfcPath = ChainAction.getSfcPath(new SfcName(chainName)); if (sfcPath == null || sfcPath.getName() == null) { continue; } if (sfcPath.isSymmetric()) { chainNames.add(param.getStringValue()); } } } return chainNames; }
private ParameterValue getChainNameParameter(List<ParameterValue> paramValueList) { if (paramValueList == null) return null; for (ParameterValue pv : paramValueList) { if (pv.getName().getValue().equals(ChainActionDefinition.SFC_CHAIN_NAME)) { return pv; } } return null; }
private void deleteSfcRsp() { ParameterValue pv = getChainNameParameter(originalInstance.getParameterValue()); if (pv == null) return; rspMap.remove(pv.getStringValue()); }
private void validateRange(Map<String, ParameterValue> params, String portRangeParam) { if (params.get(portRangeParam) != null) { validateRangeValue(params.get(portRangeParam).getRangeValue()); } }
for (org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue instance : actionInstance.getParameterValue()) { ParameterValueBuilder pBuilder = new ParameterValueBuilder(); pBuilder.setIntValue(instance.getIntValue()); if (instance.getName() != null) { pBuilder.setName(new Name(instance.getName().getValue())); pBuilder.setStringValue(instance.getStringValue()); if (instance.getRangeValue() != null) { RangeValueBuilder rBuilder = new RangeValueBuilder().setMax( instance.getRangeValue().getMax()).setMin(instance.getRangeValue().getMin()); pBuilder.setRangeValue(rBuilder.build());
private static ParameterValue getParamVal(List<ParameterValue> parametersAndValues, String paramName) { for (ParameterValue paramVal : parametersAndValues) { if (paramName.equals(paramVal.getName().getValue())) { return paramVal; } } return null; }
private void changeSfcRsp() { ParameterValue newPv = getChainNameParameter(actionInstance.getParameterValue()); ParameterValue origPv = getChainNameParameter(originalInstance.getParameterValue()); if (!newPv.getStringValue().equals(origPv.getStringValue())) { if (rspMap.containsKey(origPv.getStringValue())) { /* * Flow cleanup will happen as part of the * resolved policy * * TODO: can we guarantee that this * happens after we remove the RSP?). */ rspMap.remove(origPv.getStringValue()); } addSfcRsp(); } }
delta -= 30; } else if (isRangePortParam(pv)) { delta -= pv.getRangeValue().getMin().equals(pv.getRangeValue().getMax()) ? 30 : 20;
for (org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue instance : classifierInstance.getParameterValue()) { ParameterValueBuilder pBuilder = new ParameterValueBuilder(); pBuilder.setIntValue(instance.getIntValue()); pBuilder.setName(new Name(instance.getName().getValue())); pBuilder.setStringValue(instance.getStringValue()); if (instance.getRangeValue() != null) { RangeValueBuilder rBuilder = new RangeValueBuilder().setMax( instance.getRangeValue().getMax()).setMin(instance.getRangeValue().getMin()); pBuilder.setRangeValue(rBuilder.build());
@Override protected void checkPresenceOfRequiredParams(Map<String, ParameterValue> params) { if (params.get(IpProtoClassifierDefinition.PROTO_PARAM) == null) { throw new IllegalArgumentException( "Parameter " + IpProtoClassifierDefinition.PROTO_PARAM + " " + MSG_NOT_SPECIFIED); } if (params.get(IpProtoClassifierDefinition.PROTO_PARAM).getIntValue() == null) { throw new IllegalArgumentException( "Value of " + IpProtoClassifierDefinition.PROTO_PARAM + " " + MSG_PARAMETER_IS_NOT_PRESENT); } }
private ParameterValue getChainNameParameter(List<ParameterValue> pvl) { if (pvl == null) return null; for (ParameterValue pv: actionInstance.getParameterValue()) { if (pv.getName().getValue().equals(SFC_CHAIN_NAME)) { return pv; } } return null; }
if (pv == null) return; LOG.trace("Invoking RPC for chain {}", pv.getStringValue()); ReadRenderedServicePathFirstHopInputBuilder builder = new ReadRenderedServicePathFirstHopInputBuilder() .setName(pv.getStringValue()); result.get(); if (output.isSuccessful()) { LOG.trace("RPC for chain {} succeeded!", pv.getStringValue()); RenderedServicePathFirstHop rspFirstHop = output.getResult().getRenderedServicePathFirstHop(); rspMap.putIfAbsent(pv.getStringValue(), rspFirstHop);
@Override protected void checkPresenceOfRequiredParams(Map<String, ParameterValue> params) { if (params.get(EtherTypeClassifierDefinition.ETHERTYPE_PARAM) == null) { throw new IllegalArgumentException( "Parameter " + EtherTypeClassifierDefinition.ETHERTYPE_PARAM + " " + MSG_NOT_SPECIFIED); } if (params.get(EtherTypeClassifierDefinition.ETHERTYPE_PARAM).getIntValue() == null) { throw new IllegalArgumentException( "Value of " + EtherTypeClassifierDefinition.ETHERTYPE_PARAM + " " + MSG_PARAMETER_IS_NOT_PRESENT); } }
private void getSfcChain() { ParameterValue pv = getChainNameParameter(actionInstance.getParameterValue()); if (pv == null) return; LOG.trace("Invoking RPC for chain {}", pv.getStringValue()); SfcName chainName=new SfcName(pv.getStringValue()); ServiceFunctionChain chain = SfcProviderServiceChainAPI.readServiceFunctionChain(chainName); ServiceFunctionPaths paths = SfcProviderServicePathAPI.readAllServiceFunctionPaths(); for(ServiceFunctionPath path: paths.getServiceFunctionPath()) { if(path.getServiceChainName().equals(chainName)) { LOG.info("Found path {} for chain {}",path.getName(),path.getServiceChainName()); } } } }