Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Support forwarding_mode from Global Vrouter config.
Closes-Bug: #1471637
Closes-Bug: #1475370

1471637
Implemented forwarding_mode in VN page by removing web server config knob and using forwarding_mode of global vrouter config instead.
Also added UI knob to configure forwarding_mode of global vrouter config under 'Global Options' page.

1475370
In BGP peers config page, removed text change handler on ASN.

Change-Id: Ia59f2cd6ab9a6eff5f61da5ba3e8a89e625244a5
  • Loading branch information
Balaji Kumar AS committed Aug 18, 2015
1 parent 296c7c6 commit 5193577
Show file tree
Hide file tree
Showing 6 changed files with 116 additions and 25 deletions.
2 changes: 1 addition & 1 deletion webroot/common/api/jsonDiff.helper.js
Expand Up @@ -65,7 +65,7 @@ var configJsonModifyObj = {
},
'global-vrouter-config': {
'isConfig': true,
'optFields': ['vxlan_network_identifier_mode', 'encapsulation_priorities', 'linklocal_services'],
'optFields': ['forwarding_mode', 'vxlan_network_identifier_mode', 'encapsulation_priorities', 'linklocal_services'],
'mandateFields': ['fq_name', 'uuid', 'display_name']
},
'physical-topology': {
Expand Down
1 change: 0 additions & 1 deletion webroot/config/bgp/ui/views/bgp_config.view
Expand Up @@ -93,7 +93,6 @@
<div class="row-fluid">
<input id="txtasn" class="span10"
type="text" name="txtasn" value=""
onchange="populateMultiselect('chkexternal');"
placeholder="1 - 65535">
</input>
</div>
Expand Down
61 changes: 59 additions & 2 deletions webroot/config/forwardingoptions/ui/js/global_options_config.js
Expand Up @@ -124,8 +124,27 @@ function initComponents() {
footer : false
});

var forwardingModeLabels = ["Default","L2 and L3","L2 Only", "L3 Only"];
var forwardingModeValues = ["default", "l2_l3", "l2", "l3"];
var forwardingModeData = [];

for (var i = 0; i < forwardingModeLabels.length; i++) {
var fwdModeData = {
text: forwardingModeLabels[i],
value: forwardingModeValues[i]
};
forwardingModeData.push(fwdModeData);
}

gridGlobalConfig = $("#gridGlobalConfig").data('contrailGrid');

$('#ddForwardingMode').contrailDropdown({
dataTextField:"text",
dataValueField:"value"
});
$('#ddForwardingMode')
.data('contrailDropdown')
.setData(forwardingModeData);

confirmMainSave = $("#confirmMainSave");
confirmMainSave.modal({backdrop:'static', keyboard: false, show:false});
windowEditGblConfig = $('#windowEditGblConfig');
Expand Down Expand Up @@ -262,6 +281,7 @@ function initActions() {
globalVRouterConfig["global-vrouter-config"]["encapsulation_priorities"]["encapsulation"][i] = priorities[i];
}
}
var forwarding_mode = $("#ddForwardingMode").data("contrailDropdown").value();
if(null === configObj["global-vrouter-config"] ||
typeof configObj["global-vrouter-config"] === "undefined" ||
null === configObj["global-vrouter-config"]["uuid"] ||
Expand All @@ -274,11 +294,32 @@ function initActions() {
var gvrId = configObj["global-vrouter-config"]["uuid"];
/*doAjaxCall("/api/tenants/config/global-vrouter-config/" + gvrId + "/forwarding-options",
"PUT", JSON.stringify(globalVRouterConfig), null, "handleCommitFailure");*/

if(forwarding_mode === "default") {
//if tag 'forwarding_mode' is missing, just like in case of an upgrade,
//dont add 'forwarding_mode' since user is still going with 'default'.
//if(null !== configObj["global-vrouter-config"]["forwarding_mode"] &&
// typeof configObj["global-vrouter-config"]["forwarding_mode"] !== "undefined") {
//Adding 'forwarde_mode' tag if it is already there.
globalVRouterConfig["global-vrouter-config"]["forwarding_mode"] = null;
// }
} else {
//Add forwarding_mode only for l2_l3, l2, l3.
globalVRouterConfig["global-vrouter-config"]["forwarding_mode"] = forwarding_mode;
}
fwdOptnURL = "/api/tenants/config/global-vrouter-config/" + gvrId + "/forwarding-options";
fwdOptnActionType = "PUT";
}
var forwardingModeChanged = false;
if(orig_forwarding_mode !== forwarding_mode) {
forwardingModeChanged = true;
if(("" + orig_forwarding_mode + forwarding_mode).trim() === "null") {
forwardingModeChanged = false;
}
}
//post url for forwarding options
if(isPriorityChanged(actPriorities, priorities) || (actVxlan !== vxlanid)) {
if(isPriorityChanged(actPriorities, priorities) || (actVxlan !== vxlanid) ||
(forwardingModeChanged === true)) {
ajaxArry.push($.ajax({
url : fwdOptnURL,
type : fwdOptnActionType,
Expand Down Expand Up @@ -374,6 +415,9 @@ function handleCommitFailure(result) {

function setEditPopupData() {
$('input:radio[name="vxlanMode"][value="' + actVxlan + '"]').attr('checked',true);
$("#ddForwardingMode").data('contrailDropdown').value(
(orig_forwarding_mode === "" || null === orig_forwarding_mode) ?
"default" : orig_forwarding_mode);
$("#epTuples").html("");
for(var i=0; i<actPriorities.length; i++) {
var epEntry = createEPEntry(actPriorities[i], i);
Expand All @@ -396,8 +440,10 @@ function populateData(result) {
var vxLanIdentifierModeLabels = ["Auto Configured", "User Configured"];
var vxLanIdentifierModeValues = ["automatic", "configured"];
var encapsulationMap = {"MPLSoGRE":"MPLS Over GRE", "MPLSoUDP":"MPLS Over UDP", "VXLAN":"VxLAN"};
var fwdModeMap = {"default" : "Default", "l2_l3" : "L2 and L3", "l2" : "L2 Only", "l3" : "L3 Only"};
var gridDS = [];
var priorities;
orig_forwarding_mode = "";
$("#epTuples").html("");
if(null !== result) {
gvrConfig = result["global-vrouter-config"];
Expand All @@ -410,6 +456,14 @@ function populateData(result) {
//Set default 'automatic' for VxLANIdentifierMode
actVxlan = vxLanIdentifierModeValues[0];
}

if(null !== gvrConfig["forwarding_mode"] &&
typeof gvrConfig["forwarding_mode"] !== "undefined") {
orig_forwarding_mode = gvrConfig["forwarding_mode"];
} else {
orig_forwarding_mode = null;
}

if(null !== gvrConfig["encapsulation_priorities"] &&
typeof gvrConfig["encapsulation_priorities"] !== "undefined" &&
null !== gvrConfig["encapsulation_priorities"]["encapsulation"] &&
Expand Down Expand Up @@ -454,6 +508,9 @@ function populateData(result) {
gridDS.push({'property' : 'Global ASN', 'value' : ggasn});
gridDS.push({'property' : 'iBGP Auto Mesh', 'value' : isiBGPAutoMesh});
gridDS.push({'property' : 'IP Fabric Subnets', 'value':ipFabricSubnets});
gridDS.push({'property' : 'Forwarding Mode', 'value': (null === orig_forwarding_mode || (typeof orig_forwarding_mode === "string" &&
orig_forwarding_mode.trim() === "" )) ? fwdModeMap["default"] : fwdModeMap[orig_forwarding_mode]});

gridGlobalConfig._dataView.setData(gridDS);
}

Expand Down
Expand Up @@ -34,6 +34,16 @@
<div id="fwdOptnsWidget" class="widget-body">
<div class="widget-main padding-4">
<div class="row-fluid margin-0-0-10">
<div class="control-group">
<label class="control-label">Forwarding Mode</label>
<div class="controls">
<div class="row-fluid">
<div class="span6">
<input type="text" id="ddForwardingMode" name="ddForwardingMode" class="span12 pull-left" />
</div>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label">VxLAN Identifier Mode</label>
<div class="controls">
Expand Down
Expand Up @@ -148,6 +148,7 @@ function updateForwardingOptions (request, response, appData) {
return;
}


var gvrGetURL = '/global-vrouter-config/' + gvrId;
configApiServer.apiGet(gvrGetURL, appData,
function(error, data) {
Expand All @@ -159,6 +160,8 @@ function updateForwardingOptions (request, response, appData) {
var gvrConfigData = commonUtils.cloneObj(data);
gvrConfigData["global-vrouter-config"]["vxlan_network_identifier_mode"] =
gvrPutData["global-vrouter-config"]["vxlan_network_identifier_mode"];
gvrConfigData["global-vrouter-config"]["forwarding_mode"] =
gvrPutData["global-vrouter-config"]["forwarding_mode"];

gvrConfigData["global-vrouter-config"]["encapsulation_priorities"] = {};
gvrConfigData["global-vrouter-config"]["encapsulation_priorities"]["encapsulation"] =
Expand Down
64 changes: 43 additions & 21 deletions webroot/config/vn/ui/js/vn_config.js
Expand Up @@ -274,7 +274,23 @@ function initComponents() {
vnAjaxcount = 0;

ddFwdMode = $("#ddFwdMode").contrailDropdown({
data: [{id:"l2_l3", text:'L2 and L3'}, {id:"l2", text:'L2 Only'}]
data: [{
id:"default",
text:'Default'
},
{
id:"l2_l3",
text:'L2 and L3'
},
{
id:"l2",
text:'L2 Only'
},
{
id:"l3",
text:'L3 Only'
}
]
});

ddAdminState = $("#ddAdminState").contrailDropdown({
Expand Down Expand Up @@ -714,6 +730,7 @@ function initActions() {
}
}
var fwdMode = $("#ddFwdMode").val();
fwdMode = (fwdMode === "default") ? "" : fwdMode;
var gvrConfig = configObj["global-vrouter-config"];
if(null !== gvrConfig && typeof gvrConfig !== "undefined" &&
null !== gvrConfig["vxlan_network_identifier_mode"] &&
Expand All @@ -731,6 +748,9 @@ function initActions() {
if(typeof fwdMode !== "undefined" && "" !== fwdMode) {
vnConfig["virtual-network"]["virtual_network_properties"]
["forwarding_mode"] = fwdMode;
} else {
vnConfig["virtual-network"]["virtual_network_properties"]
["forwarding_mode"] = null;
}

if($("#allow_transit")[0].checked === true)
Expand Down Expand Up @@ -2219,10 +2239,10 @@ function successHandlerForGridVNRow(result) {
}else if(fwdMode === "l3") {
fwdMode = "L3 Only";
} else {
fwdMode = "";
fwdMode = "Default";
}
} else {
fwdMode = "L2 and L3";
fwdMode = "Default";
}
var vxlanid= "";
if(vxlan_identifier_mode == "configured") {
Expand All @@ -2245,7 +2265,7 @@ function successHandlerForGridVNRow(result) {
enableControles = false;
if(reorder_policiesTxt.trim() == "") reorder_policiesTxt = "-";
if(String(vxlanid).trim() == "") vxlanid = "-";
if(fwdMode.trim() == "") fwdMode = "-";
if(fwdMode.trim() == "") fwdMode = "Default";
if(DNSServer.trim() == "") DNSServer = "-";
if(hostRoutPrifix.trim() == "") hostRoutPrifix = "-";
var prouterBackRefs = vn['physical_router_back_refs'];
Expand Down Expand Up @@ -2421,9 +2441,9 @@ function clearValuesFromDomElements() {
txtVxLanId.val("");
txtVNName[0].disabled = false;
txtDisName.val("");
$("#ddFwdMode").data("contrailDropdown").value("l2_l3");
$("#ddFwdMode").data("contrailDropdown").enable(false);
$("#divFwdMode").removeClass("hide");
$("#ddFwdMode").data("contrailDropdown").value("default");
//$("#ddFwdMode").data("contrailDropdown").enable(false);
//$("#divFwdMode").removeClass("hide");
$("#ddAdminState").data("contrailDropdown").value("true");
$("#router_external")[0].checked = false;
$("#is_shared")[0].checked = false;
Expand Down Expand Up @@ -2498,11 +2518,11 @@ function showVNEditWindow(mode, rowIndex) {
url:"/api/tenants/config/global-vrouter-config",
type:"GET"
});
getAjaxs[3] = $.ajax({
/*getAjaxs[3] = $.ajax({
url:"/api/admin/webconfig/network/L2_enable",
type:"GET"
});
getAjaxs[4] = $.ajax({
});*/
getAjaxs[3] = $.ajax({
url:"/api/tenants/config/physical-routers-list",
type:"GET"
});
Expand All @@ -2524,17 +2544,17 @@ function showVNEditWindow(mode, rowIndex) {
}
var results = arguments;
var networkPolicies = jsonPath(results[0][0], "$.network-policys[*]");
var l2Mode = results[3][0].L2_enable;
var proutersResult = results[4][0];
if(l2Mode == false){
$("#ddFwdMode").data("contrailDropdown").enable(false);
$("#ddFwdMode").data("contrailDropdown").value("l2_l3");
$("#divFwdMode").addClass("hide");
} else {
$("#ddFwdMode").data("contrailDropdown").value("l2_l3");
//var l2Mode = results[3][0].L2_enable;
var proutersResult = results[3][0];
//if(l2Mode == false){
// $("#ddFwdMode").data("contrailDropdown").enable(false);
// $("#ddFwdMode").data("contrailDropdown").value("l2_l3");
// $("#divFwdMode").addClass("hide");
//} else {
$("#ddFwdMode").data("contrailDropdown").value("default");
$("#ddFwdMode").data("contrailDropdown").enable(true);
$("#divFwdMode").removeClass("hide");
}
//$("#divFwdMode").removeClass("hide");
//}
var nps = [];
configObj["network-policys"] = [];
var selectedDomain = $("#ddDomainSwitcher").data("contrailDropdown").text();
Expand Down Expand Up @@ -2770,9 +2790,11 @@ function showVNEditWindow(mode, rowIndex) {
$(txtVxLanId).val(vnProps["vxlan_network_identifier"]);
}
if(null !== vnProps["forwarding_mode"] &&
typeof vnProps["forwarding_mode"] &&
typeof vnProps["forwarding_mode"] == "string" &&
"" !== vnProps["forwarding_mode"].trim()) {
$("#ddFwdMode").data("contrailDropdown").value(vnProps["forwarding_mode"]);
} else {
$("#ddFwdMode").data("contrailDropdown").value("default");
}
if(null !== vnProps["allow_transit"] &&
"" !== vnProps["allow_transit"]) {
Expand Down

0 comments on commit 5193577

Please sign in to comment.