+ private ServiceFunctionsBuilder serviceFunctionsBuilder() {
+ SfDataPlaneLocatorBuilder sfDataPlaneLocator =
+ serviceFunctionUtils.sfDataPlaneLocatorBuilder(new SfDataPlaneLocatorBuilder(),
+ "192.168.120.31", 6633, "testDpl1-1234-uuid", "testSff1");
+ List<SfDataPlaneLocator> sfDataPlaneLocatorList = serviceFunctionUtils.list(
+ new ArrayList<SfDataPlaneLocator>(), sfDataPlaneLocator);
+ ServiceFunctionBuilder serviceFunctionBuilder =
+ serviceFunctionUtils.serviceFunctionBuidler(new ServiceFunctionBuilder(),
+ "192.168.120.31", "testSf", sfDataPlaneLocatorList, Firewall.class);
+ List<ServiceFunction> serviceFunctionList = serviceFunctionUtils.list(
+ new ArrayList<ServiceFunction>(), serviceFunctionBuilder);
+
+ sfDataPlaneLocator =
+ serviceFunctionUtils.sfDataPlaneLocatorBuilder(new SfDataPlaneLocatorBuilder(),
+ "192.168.120.32", 6633, "testDpl2-1234-uuid", "testSff2");
+ sfDataPlaneLocatorList = serviceFunctionUtils.list(
+ new ArrayList<SfDataPlaneLocator>(), sfDataPlaneLocator);
+ serviceFunctionBuilder =
+ serviceFunctionUtils.serviceFunctionBuidler(new ServiceFunctionBuilder(),
+ "192.168.120.32", "testSf2", sfDataPlaneLocatorList, Dpi.class);
+ serviceFunctionList = serviceFunctionUtils.list(
+ serviceFunctionList, serviceFunctionBuilder);
+
+ ServiceFunctionsBuilder serviceFunctionsBuilder =
+ serviceFunctionUtils.serviceFunctionsBuilder(new ServiceFunctionsBuilder(),
+ serviceFunctionList);
+ LOG.info("ServiceFunctions: {}", serviceFunctionsBuilder.build());
+ return serviceFunctionsBuilder;
+ }
+
+ private ServiceFunctionForwardersBuilder serviceFunctionForwardersBuilder() {
+ String sf1Name = "firewall-72";
+ String sff1Ip = "192.168.120.31";
+ String sff1Name = "SFF1";
+ String sffDpl1Name = "sfc-tun2";
+ String sn1Name = "OVSDB2";
+ String bridge1Name= "sw2";
+ int port = 6633;
+
+ DataPlaneLocatorBuilder dataPlaneLocatorBuilder =
+ serviceFunctionForwarderUtils.dataPlaneLocatorBuilder(
+ new DataPlaneLocatorBuilder(), sff1Ip, port);
+ SffDataPlaneLocatorBuilder sffDataPlaneLocatorBuilder =
+ serviceFunctionForwarderUtils.sffDataPlaneLocatorBuilder(
+ new SffDataPlaneLocatorBuilder(), dataPlaneLocatorBuilder, sffDpl1Name);
+ List<SffDataPlaneLocator> sffDataPlaneLocatorList = serviceFunctionForwarderUtils.list(
+ new ArrayList<SffDataPlaneLocator>(), sffDataPlaneLocatorBuilder);
+
+ SffSfDataPlaneLocatorBuilder sffSfDataPlaneLocatorBuilder =
+ serviceFunctionForwarderUtils.sffSfDataPlaneLocatorBuilder(
+ new SffSfDataPlaneLocatorBuilder(), sff1Ip, port);
+ ServiceFunctionDictionaryBuilder serviceFunctionDictionaryBuilder =
+ serviceFunctionForwarderUtils.serviceFunctionDictionaryBuilder(
+ new ServiceFunctionDictionaryBuilder(), sf1Name, Firewall.class,
+ sffSfDataPlaneLocatorBuilder);
+ List<ServiceFunctionDictionary> serviceFunctionDictionaryList = serviceFunctionForwarderUtils.list(
+ new ArrayList<ServiceFunctionDictionary>(), serviceFunctionDictionaryBuilder);
+
+ ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder =
+ serviceFunctionForwarderUtils.serviceFunctionForwarderBuilder(
+ new ServiceFunctionForwarderBuilder(), sff1Name, sn1Name, bridge1Name,
+ sffDataPlaneLocatorList, serviceFunctionDictionaryList);
+ List<ServiceFunctionForwarder> serviceFunctionForwarderList = serviceFunctionForwarderUtils.list(
+ new ArrayList<ServiceFunctionForwarder>(), serviceFunctionForwarderBuilder);
+ ServiceFunctionForwardersBuilder serviceFunctionForwardersBuilder =
+ serviceFunctionForwarderUtils.serviceFunctionForwardersBuilder(
+ new ServiceFunctionForwardersBuilder(), serviceFunctionForwarderList);
+ LOG.info("ServiceFunctionForwarders: {}", serviceFunctionForwardersBuilder.build());
+ return serviceFunctionForwardersBuilder;
+ }
+
+ @Test
+ public void testSfcModel() throws InterruptedException {
+ testModel(serviceFunctionsBuilder(), ServiceFunctions.class, 3000);
+ testModel(serviceFunctionForwardersBuilder(), ServiceFunctionForwarders.class, 3000);
+ }
+