Closed behroozfarkiani closed 5 years ago
I added this constraint in another way. There are some constraints per each virtual function of a chain that specifies the physical nodes that cannot handle the manager of this virtual function.
They are not the same. A manager is supposed to manage a set of VNFs and restricts their locations, so the constraint must be enforced by the manager VNFs, not the abstract functions.
Yes, you are right. I will change it today and let you know again.
This time should works 😄
I think you changed the code in this way: for each chain, place a manager on one of the specified locations.
if (!this.cfg.getNodes().get(n).getNotSupportedNodes().contains(j)) {
constraint.addTerm(1, this.zHat[h][n]);
If it is, it is completely wrong! you must implement this: for each manager, the set of managed chains must be placed on one of the specified locations.
I implement the following constraint:
x_w^v = z_w1^h + z_w2^h + ...
that force a specific set of managers if a VNF placed on a physical node by this each manager can have its physical nodes.
Actually, I can't read your code. it is not self-describable. So, it is better to explain it in an example.
Yes, you are right. I will write it down to you now.
I find out the issue with my current implementation and change the constraint to the following:
if VNF v
of chain h
is placed on physical machine w
then chain h
cannot be managed with managers that do not support physical machine w
.
use the illustrative example to show your implementation
If you place a function on a physical node then specific physical nodes can be selected for management of that chain.
w is a physical node h is a chain that v belongs to w1, w2, ... is a set of physical nodes that can support management on w