diff --git a/gctrl-spring/gctrl/pom.xml b/gctrl-spring/gctrl/pom.xml
index 6143064..6fbdf90 100644
--- a/gctrl-spring/gctrl/pom.xml
+++ b/gctrl-spring/gctrl/pom.xml
@@ -68,10 +68,10 @@
- org.apache.httpcomponents
- httpclient
- 4.5
-
+ org.apache.httpcomponents
+ httpclient
+ 4.5
+
diff --git a/gctrl-spring/gctrl/src/main/java/MANOAPI.java b/gctrl-spring/gctrl/src/main/java/MANOAPI.java
index ddf8e1a..36a5c8b 100644
--- a/gctrl-spring/gctrl/src/main/java/MANOAPI.java
+++ b/gctrl-spring/gctrl/src/main/java/MANOAPI.java
@@ -65,7 +65,6 @@ class MANOAPI {
while ((line = br.readLine()) != null) {
System.out.println("Response : \n" + result.append(line));
}
- //System.out.println("Does Reponse contains 'datacenter'? :" + result.toString().contains("datacenter"));
}
return ip;
}
diff --git a/gctrl-spring/gctrl/src/main/java/SDNCtrlAPI.java b/gctrl-spring/gctrl/src/main/java/SDNCtrlAPI.java
index 4acc14b..f909199 100644
--- a/gctrl-spring/gctrl/src/main/java/SDNCtrlAPI.java
+++ b/gctrl-spring/gctrl/src/main/java/SDNCtrlAPI.java
@@ -21,36 +21,68 @@ class SDNCtrlAPI {
String status = "OK";
Main.logger(this.getClass().getSimpleName(), "olddestip = " + olddestip + "; newdestip = " + newdestip);
- //On s3: Redirect traffic from gwf2 to gwi2 through s4
CloseableHttpClient httpclient = HttpClients.createDefault();
- HttpPost httpPost = new HttpPost("http://127.0.0.1:8080/stats/flowentry/add");
+ HttpPost httpPost;
+ String match, actions, inputJson, line;
+ StringEntity stringEntity;
+ HttpResponse response;
+ BufferedReader br;
+ StringBuffer result;
+
+ //Fixing script gateway.js registering bug
+ //Manually registering gwf2
+ httpPost = new HttpPost("http://172.17.0.17:8181/gateways/register");
+ httpPost.setHeader("Accept", "application/json");
+ httpPost.setHeader("Content-type", "application/json");
+ inputJson = "{\n" +
+ " \"Name\": \"gwf2\",\n" +
+ " \"PoC\": \"http://10.0.2.100:8282\"\n" +
+ "}";
+ stringEntity = new StringEntity(inputJson);
+ httpPost.setEntity(stringEntity);
+ httpclient.execute(httpPost);
+ //Manually registering gwf3
+ httpPost = new HttpPost("http://172.17.0.17:8181/gateways/register");
+ httpPost.setHeader("Accept", "application/json");
+ httpPost.setHeader("Content-type", "application/json");
+ inputJson = "{\n" +
+ " \"Name\": \"gwf3\",\n" +
+ " \"PoC\": \"http://10.0.3.100:8282\"\n" +
+ "}";
+ stringEntity = new StringEntity(inputJson);
+ httpPost.setEntity(stringEntity);
+ httpclient.execute(httpPost);
+
+
+ //On s3: Redirect traffic from gwf2 to gwi2 through s4
+ httpPost = new HttpPost("http://127.0.0.1:8080/stats/flowentry/add");
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");//vnfinfos.get("image")
- String match = "{\n" +
+ match = "{\n" +
" \"ipv4_dst\": \"10.2.2.1\",\n" +
" \"eth_type\": 2048,\n" +
" \"ipv4_src\": \"10.0.2.100\"\n" +
"}";
- String actions = "[\n" +
+ actions = "[\n" +
" {\"type\": \"SET_FIELD\", \"field\":\"eth_dst\", \"value\":\"00:00:00:00:00:20\"}, \n" +
" {\"type\": \"SET_FIELD\", \"field\":\"ipv4_dst\", \"value\":\"10.2.2.2\"}, \n" +
" {\"type\": \"OUTPUT\", \"port\":2} \n" +
"]";
- String inputJson = "{\n" +
+ inputJson = "{\n" +
" \"dpid\": 3,\n" +
" \"priority\": 1,\n" +
" \"match\": "+match+",\n" +
" \"actions\": "+actions+"\n" +
"}";
- StringEntity stringEntity = new StringEntity(inputJson);
+ stringEntity = new StringEntity(inputJson);
httpPost.setEntity(stringEntity);
- HttpResponse response = httpclient.execute(httpPost);
- BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
+ response = httpclient.execute(httpPost);
+ br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
if (response.getStatusLine().getStatusCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
}
- StringBuffer result = new StringBuffer();
- String line = "";
+ result = new StringBuffer();
+ line = "";
while ((line = br.readLine()) != null) {
System.out.println("Response : \n" + result.append(line));
}
@@ -184,49 +216,6 @@ class SDNCtrlAPI {
System.out.println("Response : \n" + result.append(line));
}
-
- //Fixing script gateway.js registering bug
- //Manually registering gwf2
- httpPost = new HttpPost("http://172.17.0.17:8181/gateways/register");
- httpPost.setHeader("Accept", "application/json");
- httpPost.setHeader("Content-type", "application/json");
- inputJson = "{\n" +
- " \"Name\": \"gwf2\",\n" +
- " \"PoC\": \"http://10.0.2.100:8282\"\n" +
- "}";
- stringEntity = new StringEntity(inputJson);
- httpPost.setEntity(stringEntity);
- response = httpclient.execute(httpPost);
- br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
- if (response.getStatusLine().getStatusCode() != 200) {
- throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
- }
- result = new StringBuffer();
- line = "";
- while ((line = br.readLine()) != null) {
- System.out.println("Response : \n" + result.append(line));
- }
- //Manually registering gwf3
- httpPost = new HttpPost("http://172.17.0.17:8181/gateways/register");
- httpPost.setHeader("Accept", "application/json");
- httpPost.setHeader("Content-type", "application/json");
- inputJson = "{\n" +
- " \"Name\": \"gwf3\",\n" +
- " \"PoC\": \"http://10.0.3.100:8282\"\n" +
- "}";
- stringEntity = new StringEntity(inputJson);
- httpPost.setEntity(stringEntity);
- response = httpclient.execute(httpPost);
- br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
- if (response.getStatusLine().getStatusCode() != 200) {
- throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
- }
- result = new StringBuffer();
- line = "";
- while ((line = br.readLine()) != null) {
- System.out.println("Response : \n" + result.append(line));
- }
-
return status;
}
diff --git a/gctrl-spring/gctrl/src/main/java/fr/laas/gctrl/GctrlApplication.java b/gctrl-spring/gctrl/src/main/java/fr/laas/gctrl/GctrlApplication.java
index 16b4887..d9acdfe 100644
--- a/gctrl-spring/gctrl/src/main/java/fr/laas/gctrl/GctrlApplication.java
+++ b/gctrl-spring/gctrl/src/main/java/fr/laas/gctrl/GctrlApplication.java
@@ -28,81 +28,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
public class GctrlApplication {
public static void main(String[] args) throws ClientProtocolException, IOException{
- /*RestTemplate restTemplate = new RestTemplate();
- ResponseEntity response = restTemplate.getForEntity("http://172.17.0.3:8080/health", String.class);
- ObjectMapper mapper = new ObjectMapper();
- JsonNode root;
- try {
- root = mapper.readTree(response.getBody());
- JsonNode cpu_load = root.path("currentload");
-
- //JsonNode root1 = mapper.readTree(name.toString().replace("[", "").replace("]", ""));
- //JsonNode name1 = root1.path("load");
-
- System.out.println(cpu_load.asDouble());
- //System.out.println(name1.asDouble()+2);
- } catch (JsonMappingException e) {
- e.printStackTrace();
- } catch (JsonProcessingException e) {
- e.printStackTrace();
- }*/
-
- //RestTemplate restTemplate = new RestTemplate();
- /*CloseableHttpClient httpclient = HttpClients.createDefault();
- HttpPut httpPut = new HttpPut("http://127.0.0.1:5001/restapi/compute/dc1/gwi2");
- httpPut.setHeader("Accept", "application/json");
- httpPut.setHeader("Content-type", "application/json");
- String inputJson = "{\n" +
- " \"image\": \"gateway:topo\",\n" +
- " \"network\": \"(id=input,ip=10.2.2.2/8)\"\n" +
- "}";
- StringEntity stringEntity = new StringEntity(inputJson);
- httpPut.setEntity(stringEntity);
- HttpResponse response = httpclient.execute(httpPut);
- BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
- if (response.getStatusLine().getStatusCode() != 200) {
- throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
- }
- StringBuffer result = new StringBuffer();
- String line = "";
- while ((line = br.readLine()) != null) {
- System.out.println("Response : \n" + result.append(line));
- }
- System.out.println("Does Reponse contains 'datacenter'? :" + result.toString().contains("datacenter"));*/
-
- CloseableHttpClient httpclient = HttpClients.createDefault();
- HttpPost httpPost = new HttpPost("http://127.0.0.1:8080/stats/flowentry/add");
- httpPost.setHeader("Accept", "application/json");
- httpPost.setHeader("Content-type", "application/json");
- String match = "{\n" +
- " \"ipv4_dst\": \"10.0.0.1\",\n" +
- " \"eth_type\": 2048,\n" +
- " \"ipv4_src\": \"10.0.2.100\"\n" +
- "}";
- String actions = "[\n" +
- " {\"type\": \"SET_FIELD\", \"field\":\"eth_dst\", \"value\":\"00:00:00:00:00:20\"}, \n" +
- " {\"type\": \"OUTPUT\", \"port\":2} \n" +
- "]";
- String inputJson = "{\n" +
- " \"dpid\": 3,\n" +
- " \"priority\": 1,\n" +
- " \"match\": "+match+",\n" +
- " \"actions\": "+actions+"\n" +
- "}";
- System.out.println(inputJson);
- StringEntity stringEntity = new StringEntity(inputJson);
- httpPost.setEntity(stringEntity);
- HttpResponse response = httpclient.execute(httpPost);
- BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
- if (response.getStatusLine().getStatusCode() != 200) {
- throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
- }
- StringBuffer result = new StringBuffer();
- String line = "";
- while ((line = br.readLine()) != null) {
- System.out.println("Response : \n" + result.append(line));
- }
}
}
diff --git a/topologie/topology.py b/topologie/topology.py
index 740f5ea..cf62a99 100755
--- a/topologie/topology.py
+++ b/topologie/topology.py
@@ -15,6 +15,9 @@ from mininet.log import setLogLevel, info
from emuvim.dcemulator.net import DCNetwork
from emuvim.api.rest.rest_api_endpoint import RestApiEndpoint
from emuvim.api.openstack.openstack_api_endpoint import OpenstackApiEndpoint
+from mininet.node import Controller, RemoteController
+from mininet.node import OVSSwitch
+#from functools import partial
logging.basicConfig(level=logging.INFO)
setLogLevel('info') # set Mininet loglevel
@@ -96,9 +99,10 @@ Necessary docker images: config:topo ; server:topo ; gateway:topo ; device:topo
def create_topology():
- net = DCNetwork(monitor=False, enable_learning=True)
+ net = DCNetwork(monitor=False, enable_learning=True, autoSetMacs=True)
dc1 = net.addDatacenter("dc1")
+ #net.addController( 'c0Externe', controller=RemoteController, ip='127.0.0.1', port=6633 ) #Ajout d'un remote controller
# add OpenStack-like APIs to the emulated DC
api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
api1.connect_datacenter(dc1)