private Layer4Match resolveL4Match(Map<String, ParameterValue> params) { Long ipProto = IpProtoClassifier.getIpProtoValue(params); if (ipProto == null) { throw new IllegalArgumentException("Parameter " + IpProtoClassifierDefinition.PROTO_PARAM + " is missing."); } if (IpProtoClassifierDefinition.UDP_VALUE.equals(ipProto)) { return new UdpMatchBuilder().build(); } else if (IpProtoClassifierDefinition.TCP_VALUE.equals(ipProto)) { return new TcpMatchBuilder().build(); } else if (IpProtoClassifierDefinition.SCTP_VALUE.equals(ipProto)) { return new SctpMatchBuilder().build(); } throw new IllegalArgumentException("Parameter " + IpProtoClassifierDefinition.PROTO_PARAM + ": value " + ipProto + " is " + Classifier.MSG_NOT_SUPPORTED); }
public static void addMatchSrcSctpPort(MatchBuilder match, int portNum) { PortNumber port = new PortNumber(portNum); SctpMatchBuilder sctpMatch = new SctpMatchBuilder(); sctpMatch.setSctpSourcePort(port); match.setLayer4Match(sctpMatch.build()); }
@Override public Optional<MatchBuilder> process(@Nonnull SctpDstCase source, MatchResponseConvertorData data, ConvertorExecutor convertorExecutor) { final MatchBuilder matchBuilder = data.getMatchBuilder(); final SctpMatchBuilder sctpMatchBuilder = data.getSctpMatchBuilder(); SctpDst sctpDst = source.getSctpDst(); PortNumber portNumber = sctpDst.getPort(); if (portNumber != null) { sctpMatchBuilder.setSctpDestinationPort(portNumber); matchBuilder.setLayer4Match(sctpMatchBuilder.build()); } return Optional.of(matchBuilder); } }
@Override public Optional<MatchBuilder> process(@Nonnull SctpSrcCase source, MatchResponseConvertorData data, ConvertorExecutor convertorExecutor) { final MatchBuilder matchBuilder = data.getMatchBuilder(); final SctpMatchBuilder sctpMatchBuilder = data.getSctpMatchBuilder(); SctpSrc sctpSrc = source.getSctpSrc(); PortNumber portNumber = sctpSrc.getPort(); if (portNumber != null) { sctpMatchBuilder.setSctpSourcePort(portNumber); matchBuilder.setLayer4Match(sctpMatchBuilder.build()); } return Optional.of(matchBuilder); } }
private Set<SctpMatch> createSctpMatches(SctpMatch sctpMatch, Set<Long> sPorts, Set<Long> dPorts) { Set<SctpMatch> sctpMatches = new HashSet<>(); if (!sPorts.isEmpty() && dPorts.isEmpty()) { for (Long srcPort : sPorts) { equalOrNotSetValidation(sctpMatch.getSctpSourcePort(), srcPort.longValue()); sctpMatches .add(new SctpMatchBuilder(sctpMatch).setSctpSourcePort(new PortNumber(srcPort.intValue())).build()); } } else if (sPorts.isEmpty() && !dPorts.isEmpty()) { for (Long dstPort : dPorts) { equalOrNotSetValidation(sctpMatch.getSctpDestinationPort(), dstPort.longValue()); sctpMatches.add(new SctpMatchBuilder(sctpMatch) .setSctpDestinationPort(new PortNumber(dstPort.intValue())).build()); } } else if (!sPorts.isEmpty() && !dPorts.isEmpty()) { for (Long srcPort : sPorts) { for (Long dstPort : dPorts) { equalOrNotSetValidation(sctpMatch.getSctpSourcePort(), srcPort.longValue()); equalOrNotSetValidation(sctpMatch.getSctpDestinationPort(), dstPort.longValue()); sctpMatches .add(new SctpMatchBuilder(sctpMatch).setSctpSourcePort(new PortNumber(srcPort.intValue())) .setSctpDestinationPort(new PortNumber(dstPort.intValue())) .build()); } } } return sctpMatches; }
public static void addMatchDstSctpPort(MatchBuilder match, int portNum) { PortNumber port = new PortNumber(portNum); SctpMatchBuilder sctpMatch = new SctpMatchBuilder(); sctpMatch.setSctpDestinationPort(port); match.setLayer4Match(sctpMatch.build()); }
private static Layer4Match Layer4MatchAsSctp(final Match sourceMatch) { SctpMatchBuilder sctpMatchBuilder = new SctpMatchBuilder(); Integer sourcePort = transportPort(sourceMatch, MatchType.TP_SRC); Integer destinationPort = transportPort(sourceMatch, MatchType.TP_DST); if (sourcePort != null) { sctpMatchBuilder.setSctpSourcePort(new PortNumber(sourcePort)); } if (destinationPort != null) { sctpMatchBuilder.setSctpDestinationPort(new PortNumber( destinationPort)); } if(sourcePort != null || destinationPort != null) { return sctpMatchBuilder.build(); } return null; }
sctpmatch.setSctpSourcePort(srcport); sctpmatch1.setSctpDestinationPort(dstport); setFieldBuilder.setLayer4Match(sctpmatch.build()); ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build()); ab.setKey(new ActionKey(0)); actionList.add(ab.build()); setFieldBuilder1.setLayer4Match(sctpmatch1.build()); ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build()); ab1.setKey(new ActionKey(1));
matchBuilder.setLayer4Match(udpMatch.build()); } else if (sctpMatch != null) { matchBuilder.setLayer4Match(sctpMatch.build());
/** * @return */ private static MatchBuilder createL4SCTPMatch() { final MatchBuilder match = new MatchBuilder(); final EthernetMatchBuilder eth = new EthernetMatchBuilder(); final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder(); ethTypeBuilder.setType(new EtherType(0x0800L)); eth.setEthernetType(ethTypeBuilder.build()); match.setEthernetMatch(eth.build()); final IpMatchBuilder ipmatch = new IpMatchBuilder(); // ipv4 version ipmatch.setIpProtocol((short) 132); match.setIpMatch(ipmatch.build()); final SctpMatchBuilder sctpmatch = new SctpMatchBuilder(); final PortNumber srcport = new PortNumber(1435); final PortNumber dstport = new PortNumber(22); sctpmatch.setSctpSourcePort(srcport); sctpmatch.setSctpDestinationPort(dstport); match.setLayer4Match(sctpmatch.build()); return match; }
sctpMatchBuilder.setSctpDestinationPort(new PortNumber(destPort)); matchBuilder.setLayer4Match(sctpMatchBuilder.build());