@Override public List<SupportedParameterValues> getSupportedParameterValues() { // supported parameter does not contain parameter type - it means all strings are supported return ImmutableList.<SupportedParameterValues>of(new SupportedParameterValuesBuilder() .setParameterName(new ParameterName(ChainActionDefinition.SFC_CHAIN_NAME)).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 static List<ParameterValue> createParams(long etherType, long proto, @Nullable Long srcPort, @Nullable Long dstPort) { List<ParameterValue> params = new ArrayList<>(); if (srcPort != null) { params.add(new ParameterValueBuilder().setName(new ParameterName(L4ClassifierDefinition.SRC_PORT_PARAM)) .setIntValue(srcPort) .build()); } if (dstPort != null) { params.add(new ParameterValueBuilder().setName(new ParameterName(L4ClassifierDefinition.DST_PORT_PARAM)) .setIntValue(dstPort) .build()); } params.add(new ParameterValueBuilder().setName(new ParameterName(IpProtoClassifierDefinition.PROTO_PARAM)) .setIntValue(proto) .build()); params.add(new ParameterValueBuilder().setName(new ParameterName(EtherTypeClassifierDefinition.ETHERTYPE_PARAM)) .setIntValue(etherType) .build()); return params; } }
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; }
@Override public List<SupportedParameterValues> getSupportedParameterValues() { List<SupportedIntValue> values = ImmutableList.of( new SupportedIntValueBuilder().setValue(EtherTypeClassifierDefinition.IPv4_VALUE).build(), new SupportedIntValueBuilder().setValue(EtherTypeClassifierDefinition.IPv6_VALUE).build()); SupportedParameterValuesBuilder builder = new SupportedParameterValuesBuilder(); builder.setParameterName(new ParameterName(EtherTypeClassifierDefinition.ETHERTYPE_PARAM)); builder.setParameterType(new IntBuilder().setSupportedIntValue(values).build()); return ImmutableList.of(builder.build()); }
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)); }
@Override public List<SupportedParameterValues> getSupportedParameterValues() { List<SupportedIntValue> values = ImmutableList.of( new SupportedIntValueBuilder().setValue(EtherTypeClassifierDefinition.ARP_VALUE).build(), new SupportedIntValueBuilder().setValue(EtherTypeClassifierDefinition.IPv4_VALUE).build(), new SupportedIntValueBuilder().setValue(EtherTypeClassifierDefinition.IPv6_VALUE).build()); SupportedParameterValuesBuilder b = new SupportedParameterValuesBuilder(); b.setParameterName(new ParameterName(EtherTypeClassifierDefinition.ETHERTYPE_PARAM)); b.setParameterType(new IntBuilder().setSupportedIntValue(values).build()); return ImmutableList.of(b.build()); }
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)); }
classifierBuilder.setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId()); if (portMin.equals(portMax)) { params.add(new ParameterValueBuilder().setName(new ParameterName(L4ClassifierDefinition.DST_PORT_PARAM)) .setIntValue(portMin.longValue()) .build()); } else { params.add(new ParameterValueBuilder().setName(new ParameterName(L4ClassifierDefinition.DST_PORT_RANGE_PARAM)) .setRangeValue( new RangeValueBuilder().setMin(portMin.longValue()).setMax(portMax.longValue()).build()) classifierBuilder.setClassifierDefinitionId(IpProtoClassifierDefinition.DEFINITION.getId()); params.add(new ParameterValueBuilder().setName(new ParameterName(IpProtoClassifierDefinition.PROTO_PARAM)) .setIntValue(protocol) .build()); classifierBuilder.setClassifierDefinitionId(EtherTypeClassifierDefinition.DEFINITION.getId()); params.add(new ParameterValueBuilder().setName(new ParameterName(EtherTypeClassifierDefinition.ETHERTYPE_PARAM)) .setIntValue(ethertype) .build());
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; }
@Override public List<SupportedParameterValues> getSupportedParameterValues() { List<SupportedIntValueInRange> allPossiblePortsIntInRange = ImmutableList.of(new SupportedIntValueInRangeBuilder().setMin(1L).setMax(65535L).build()); List<SupportedRangeValue> allPossiblePortsRange = ImmutableList.of(new SupportedRangeValueBuilder().setMin(1L).setMax(65535L).build()); SupportedParameterValues srcPorts = new SupportedParameterValuesBuilder() .setParameterName(new ParameterName(L4ClassifierDefinition.SRC_PORT_PARAM)) .setParameterType(new IntBuilder().setSupportedIntValueInRange(allPossiblePortsIntInRange).build()) .build(); SupportedParameterValues dstPorts = new SupportedParameterValuesBuilder() .setParameterName(new ParameterName(L4ClassifierDefinition.DST_PORT_PARAM)) .setParameterType(new IntBuilder().setSupportedIntValueInRange(allPossiblePortsIntInRange).build()) .build(); SupportedParameterValues srcPortsRange = new SupportedParameterValuesBuilder() .setParameterName(new ParameterName(L4ClassifierDefinition.SRC_PORT_RANGE_PARAM)) .setParameterType(new RangeBuilder().setSupportedRangeValue(allPossiblePortsRange).build()) .build(); SupportedParameterValues dstPortsRange = new SupportedParameterValuesBuilder() .setParameterName(new ParameterName(L4ClassifierDefinition.DST_PORT_RANGE_PARAM)) .setParameterType(new RangeBuilder().setSupportedRangeValue(allPossiblePortsRange).build()) .build(); return ImmutableList.of(srcPorts, dstPorts, srcPortsRange, dstPortsRange); }
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; }
.setClassifierDefinitionId(Classifier.ETHER_TYPE_CL.getId()) .setParameterValue(ImmutableList.of(new ParameterValueBuilder() .setName(new ParameterName(CLASSIFIER_NAME)) .setStringValue("*") .build()))
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());
@Override public List<SupportedParameterValues> getSupportedParameterValues() { List<SupportedIntValue> values = ImmutableList.of( new SupportedIntValueBuilder().setValue(IpProtoClassifierDefinition.ICMP_VALUE).build(), new SupportedIntValueBuilder().setValue(IpProtoClassifierDefinition.SCTP_VALUE).build(), new SupportedIntValueBuilder().setValue(IpProtoClassifierDefinition.TCP_VALUE).build(), new SupportedIntValueBuilder().setValue(IpProtoClassifierDefinition.UDP_VALUE).build()); SupportedParameterValuesBuilder builder = new SupportedParameterValuesBuilder(); builder.setParameterName(new ParameterName(IpProtoClassifierDefinition.PROTO_PARAM)); builder.setParameterType(new IntBuilder().setSupportedIntValue(values).build()); return ImmutableList.of(builder.build()); }
@Override public List<SupportedParameterValues> getSupportedParameterValues() { List<SupportedIntValue> values = ImmutableList.of( new SupportedIntValueBuilder().setValue(IpProtoClassifierDefinition.ICMP_VALUE).build(), new SupportedIntValueBuilder().setValue(IpProtoClassifierDefinition.SCTP_VALUE).build(), new SupportedIntValueBuilder().setValue(IpProtoClassifierDefinition.TCP_VALUE).build(), new SupportedIntValueBuilder().setValue(IpProtoClassifierDefinition.UDP_VALUE).build()); SupportedParameterValuesBuilder b = new SupportedParameterValuesBuilder(); b.setParameterName(new ParameterName(IpProtoClassifierDefinition.PROTO_PARAM)); b.setParameterType(new IntBuilder().setSupportedIntValue(values).build()); return ImmutableList.of(b.build()); }
pBuilder.setIntValue(instance.getIntValue()); if (instance.getName() != null) { pBuilder.setName(new Name(instance.getName().getValue()));
private void addSfcChainActionInstance(ActionChoice action, TenantId tenantId, ReadWriteTransaction rwTx) { if (action instanceof SfcActionCase) { String sfcChainName = ((SfcActionCase) action).getSfcChainName(); ActionName actionName = new ActionName(sfcChainName); ActionInstance sfcActionInstance = new ActionInstanceBuilder().setName(actionName) .setActionDefinitionId(ChainActionDefinition.ID) .setParameterValue( ImmutableList.of(new ParameterValueBuilder().setName( new ParameterName(ChainActionDefinition.SFC_CHAIN_NAME)) .setStringValue(sfcChainName) .build())) .build(); rwTx.put(LogicalDatastoreType.CONFIGURATION, IidFactory.actionInstanceIid(tenantId, actionName), sfcActionInstance, true); } }
ParameterValueBuilder pBuilder = new ParameterValueBuilder(); pBuilder.setIntValue(instance.getIntValue()); pBuilder.setName(new Name(instance.getName().getValue())); pBuilder.setStringValue(instance.getStringValue()); if (instance.getRangeValue() != null) {