WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-api

[Xen-API] [PATCH] Add Network.MTU field

To: xen-api <xen-api@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-API] [PATCH] Add Network.MTU field
From: Rob Hoes <rob.hoes@xxxxxxxxxx>
Date: Mon, 1 Feb 2010 17:12:02 +0000
Delivery-date: Mon, 01 Feb 2010 09:12:09 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-api-request@lists.xensource.com?subject=help>
List-id: Discussion of API issues surrounding Xen <xen-api.lists.xensource.com>
List-post: <mailto:xen-api@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-api>, <mailto:xen-api-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-api>, <mailto:xen-api-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-api-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Rob Hoes <rob.hoes@xxxxxxxxxx>
Add Network.MTU field

A read/write field to set the MTU for everything connected to the network. 
interface-reconfigure will be changed to use this field.

Signed-off-by: Rob Hoes <rob.hoes@xxxxxxxxxx>

diff -r d2d98f285dd8 ocaml/client_records/records.ml
--- a/ocaml/client_records/records.ml   Mon Feb 01 17:10:55 2010 +0000
+++ b/ocaml/client_records/records.ml   Mon Feb 01 17:11:06 2010 +0000
@@ -344,6 +344,7 @@
          ~get_set:(fun () -> (List.map (fun vif -> get_uuid_from_ref vif) (x 
()).API.network_VIFs)) ();
        make_field ~name:"PIF-uuids" ~get:(fun () -> String.concat "; " 
(List.map (fun pif -> get_uuid_from_ref pif) (x ()).API.network_PIFs)) 
          ~get_set:(fun () -> (List.map (fun pif -> get_uuid_from_ref pif) (x 
()).API.network_PIFs)) ();
+       make_field ~name:"MTU" ~get:(fun () -> (Int64.to_string (x 
()).API.network_MTU)) ();
        make_field ~name:"bridge" ~get:(fun () -> (x ()).API.network_bridge) ();
        make_field ~name:"other-config"         ~get:(fun () -> 
Record_util.s2sm_to_string "; " (x ()).API.network_other_config)
          ~add_to_map:(fun k v -> Client.Network.add_to_other_config rpc 
session_id net k v)
diff -r d2d98f285dd8 ocaml/idl/datamodel.ml
--- a/ocaml/idl/datamodel.ml    Mon Feb 01 17:10:55 2010 +0000
+++ b/ocaml/idl/datamodel.ml    Mon Feb 01 17:11:06 2010 +0000
@@ -3609,6 +3609,7 @@
   [
     {param_type=String; param_name="name_label"; param_doc=""; 
param_release=first_rel; param_default=None};
     {param_type=String; param_name="name_description"; param_doc=""; 
param_release=first_rel; param_default=None};
+    {param_type=Int; param_name="mTU"; param_doc=""; param_release=first_rel; 
param_default=(Some (VInt 1500L))};
     {param_type=Map(String,String); param_name="other_config"; param_doc=""; 
param_release=first_rel; param_default=None};
     {param_type=String; param_name="bridge"; param_doc=""; 
param_release=first_rel; param_default=None};
   ]
@@ -3648,6 +3649,7 @@
     ] @ (allowed_and_current_operations ~writer_roles:_R_POOL_OP 
network_operations) @ [
       field ~qualifier:DynamicRO ~ty:(Set (Ref _vif)) "VIFs" "list of 
connected vifs";
       field ~qualifier:DynamicRO ~ty:(Set (Ref _pif)) "PIFs" "list of 
connected pifs";
+      field ~qualifier:RW ~ty:Int ~default_value:(Some (VInt 1500L)) 
~in_product_since:rel_midnight_ride "MTU" "MTU in octets";
       field ~writer_roles:_R_POOL_OP ~ty:(Map(String, String)) "other_config" 
"additional configuration" 
~map_keys_roles:[("folder",(_R_VM_OP));("XenCenter.CustomFields.*",(_R_VM_OP));("XenCenterCreateInProgress",(_R_VM_OP))];
       field ~in_oss_since:None ~qualifier:DynamicRO "bridge" "name of the 
bridge corresponding to this network on the local host";
       field ~qualifier:DynamicRO ~in_product_since:rel_orlando 
~ty:(Map(String, Ref _blob)) ~default_value:(Some (VMap [])) "blobs" "Binary 
blobs associated with this network";
diff -r d2d98f285dd8 ocaml/perftest/createpool.ml
--- a/ocaml/perftest/createpool.ml      Mon Feb 01 17:10:55 2010 +0000
+++ b/ocaml/perftest/createpool.ml      Mon Feb 01 17:11:06 2010 +0000
@@ -50,7 +50,7 @@
   let networks_to_create = pool.interfaces_per_host - pool.bonds in
   debug "Creating %d networks..." networks_to_create;
   let networks = Array.init networks_to_create (fun i ->
-    Client.Network.create rpc session_id (Printf.sprintf "perftestnet%d" i) "" 
[oc_key,pool.key] [])
+    Client.Network.create ~rpc ~session_id ~name_label:(Printf.sprintf 
"perftestnet%d" i) ~name_description:"" ~mTU:1500L 
~other_config:[oc_key,pool.key] ~tags:[])
   in
 
   (* Set up the template - create the VIFs *)
@@ -379,7 +379,7 @@
   let pifs = Client.PIF.get_all poolrpc poolses in
 
   let bondednets = Array.init pool.bonds (fun i ->
-    Client.Network.create poolrpc poolses (Printf.sprintf "Network associated 
with bond%d" i) "" [] [])
+    Client.Network.create poolrpc poolses (Printf.sprintf "Network associated 
with bond%d" i) "" 1500L [] [])
   in
 
   let unused_nets = ref (List.setify (List.map (fun pif -> 
Client.PIF.get_network poolrpc poolses pif) pifs)) in
diff -r d2d98f285dd8 ocaml/xapi/cli_operations.ml
--- a/ocaml/xapi/cli_operations.ml      Mon Feb 01 17:10:55 2010 +0000
+++ b/ocaml/xapi/cli_operations.ml      Mon Feb 01 17:11:06 2010 +0000
@@ -1393,7 +1393,7 @@
 let net_create printer rpc session_id params = 
   let network = List.assoc "name-label" params in
   let descr = if List.mem_assoc "name-description" params then List.assoc 
"name-description" params else "" in
-  let net = Client.Network.create rpc session_id network descr [] [] in
+  let net = Client.Network.create rpc session_id network descr 1500L [] [] in
   let uuid = Client.Network.get_uuid rpc session_id net in
   printer (Cli_printer.PList [uuid])
 
diff -r d2d98f285dd8 ocaml/xapi/cli_operations_geneva.ml
--- a/ocaml/xapi/cli_operations_geneva.ml       Mon Feb 01 17:10:55 2010 +0000
+++ b/ocaml/xapi/cli_operations_geneva.ml       Mon Feb 01 17:11:06 2010 +0000
@@ -423,7 +423,7 @@
   let name = List.assoc "vbridge-name" params in
   let autoadd = List.assoc "auto-vm-add" params in
   let desc = try List.assoc "vbridge-description" params with _ -> "" in
-  ignore(Client.Network.create rpc session_id name desc 
+  ignore(Client.Network.create rpc session_id name desc 1500L
            (if autoadd="true" then 
[("auto_add_to_VM",autoadd);("geneva-name",name)] else [("geneva-name",name)]) 
[])
 
 let host_vbridge_remove printer rpc session_id params =
diff -r d2d98f285dd8 ocaml/xapi/create_networks.ml
--- a/ocaml/xapi/create_networks.ml     Mon Feb 01 17:10:55 2010 +0000
+++ b/ocaml/xapi/create_networks.ml     Mon Feb 01 17:11:06 2010 +0000
@@ -19,7 +19,7 @@
   let exists = try ignore(Helpers.get_guest_installer_network ~__context); 
true with e -> (log_backtrace(); false) in
   if not exists then
     ignore(Xapi_network.create ~__context ~name_label:"Guest installer network"
-      ~name_description:"Network on which guests will get assigned a private 
local IP address"
+      ~name_description:"Network on which guests will get assigned a private 
local IP address" ~mTU:1500L
       
~other_config:[Xapi_globs.is_guest_installer_network,"true";"ip_begin","192.168.128.1";"ip_end","192.168.128.254";"netmask","255.255.255.0"]
 ~tags:[])
 
 let create_networks_localhost () = 
diff -r d2d98f285dd8 ocaml/xapi/debug_populate.ml
--- a/ocaml/xapi/debug_populate.ml      Mon Feb 01 17:10:55 2010 +0000
+++ b/ocaml/xapi/debug_populate.ml      Mon Feb 01 17:11:06 2010 +0000
@@ -34,7 +34,7 @@
   else
     begin
       let nw_ref =
-       Xapi_network.create ~__context ~name_label:("Network-"^(string_of_int 
i)) ~name_description:"dummy" ~other_config:[] ~tags:[] in
+       Xapi_network.create ~__context ~name_label:("Network-"^(string_of_int 
i)) ~name_description:"dummy" ~mTU:1500L ~other_config:[] ~tags:[] in
        nws := nw_ref :: !nws;
        make_networks __context (i-1)
     end
diff -r d2d98f285dd8 ocaml/xapi/message_forwarding.ml
--- a/ocaml/xapi/message_forwarding.ml  Mon Feb 01 17:10:55 2010 +0000
+++ b/ocaml/xapi/message_forwarding.ml  Mon Feb 01 17:11:06 2010 +0000
@@ -2190,9 +2190,9 @@
 
     (* Don't forward. These are just db operations. Networks are "attached" 
when required by hosts that read db entries.
        Bridges corresponding to networks are removed by per-host GC threads 
that read from db. *)
-    let create ~__context ~name_label ~name_description ~other_config ~tags =
+    let create ~__context ~name_label ~name_description ~mTU ~other_config 
~tags =
       info "Network.create: name_label = '%s'" name_label;
-      Local.Network.create ~__context ~name_label ~name_description 
~other_config ~tags
+      Local.Network.create ~__context ~name_label ~name_description ~mTU 
~other_config ~tags
     
     let attach ~__context ~network ~host = 
       info "Network.attach: network = '%s'; host = '%s'" (network_uuid 
~__context network) (host_uuid ~__context host);
@@ -2200,8 +2200,8 @@
       do_op_on ~local_fn ~__context ~host
        (fun session_id rpc -> Client.Network.attach rpc session_id network 
host)
 
-    let pool_introduce ~__context ~name_label ~name_description ~other_config 
~bridge =
-      Local.Network.pool_introduce ~__context ~name_label ~name_description 
~other_config ~bridge
+    let pool_introduce ~__context ~name_label ~name_description ~mTU 
~other_config ~bridge =
+      Local.Network.pool_introduce ~__context ~name_label ~name_description 
~mTU ~other_config ~bridge
 
     let destroy ~__context ~self =
       info "Network.destroy: network = '%s'" (network_uuid ~__context self);
diff -r d2d98f285dd8 ocaml/xapi/xapi_network.ml
--- a/ocaml/xapi/xapi_network.ml        Mon Feb 01 17:10:55 2010 +0000
+++ b/ocaml/xapi/xapi_network.ml        Mon Feb 01 17:11:06 2010 +0000
@@ -112,14 +112,14 @@
        debug "Skipping network GC")
     
 
-let pool_introduce ~__context ~name_label ~name_description ~other_config 
~bridge =
+let pool_introduce ~__context ~name_label ~name_description ~mTU ~other_config 
~bridge =
   let r = Ref.make() and uuid = Uuid.make_uuid() in
   Db.Network.create ~__context ~ref:r ~uuid:(Uuid.to_string uuid)
     ~current_operations:[] ~allowed_operations:[]
-    ~name_label ~name_description ~bridge ~other_config ~blobs:[] ~tags:[];
+    ~name_label ~name_description ~mTU ~bridge ~other_config ~blobs:[] 
~tags:[];
   r
   
-let create ~__context ~name_label ~name_description ~other_config ~tags =
+let create ~__context ~name_label ~name_description ~mTU ~other_config ~tags =
        Mutex.execute mutex (fun () ->
                let networks = Db.Network.get_all ~__context in
                let bridges = List.map (fun self -> Db.Network.get_bridge 
~__context ~self) networks in
@@ -131,7 +131,7 @@
                                let r = Ref.make () and uuid = Uuid.make_uuid 
() in
                                Db.Network.create ~__context ~ref:r 
~uuid:(Uuid.to_string uuid)
                                  ~current_operations:[] ~allowed_operations:[]
-                                 ~name_label ~name_description ~bridge:name 
~other_config ~blobs:[] ~tags;
+                                 ~name_label ~name_description ~mTU 
~bridge:name ~other_config ~blobs:[] ~tags;
                                r in
                loop ()) 
 
diff -r d2d98f285dd8 ocaml/xapi/xapi_network.mli
--- a/ocaml/xapi/xapi_network.mli       Mon Feb 01 17:10:55 2010 +0000
+++ b/ocaml/xapi/xapi_network.mli       Mon Feb 01 17:11:06 2010 +0000
@@ -59,6 +59,7 @@
   __context:Context.t ->
   name_label:string ->
   name_description:string ->
+  mTU:int64 ->
   other_config:(string * string) list -> bridge:string -> [ `network ] Ref.t
 
 (** Attempt to create a bridge with a unique name *)
@@ -66,6 +67,7 @@
   __context:Context.t ->
   name_label:string ->
   name_description:string ->
+  mTU:int64 ->
   other_config:(string * string) list ->
   tags:string list -> [ `network ] Ref.t
 
diff -r d2d98f285dd8 ocaml/xapi/xapi_pif.ml
--- a/ocaml/xapi/xapi_pif.ml    Mon Feb 01 17:10:55 2010 +0000
+++ b/ocaml/xapi/xapi_pif.ml    Mon Feb 01 17:11:06 2010 +0000
@@ -105,7 +105,7 @@
     let () = Db.Network.create ~__context ~ref:net_ref ~uuid:net_uuid
       ~current_operations:[] ~allowed_operations:[]
       ~name_label:(Helpers.choose_network_name_for_pif device)
-      ~name_description:""
+      ~name_description:"" ~mTU:1500L
       ~bridge ~other_config:[] ~blobs:[] ~tags:[] in
     net_ref
 
diff -r d2d98f285dd8 ocaml/xapi/xapi_pool.ml
--- a/ocaml/xapi/xapi_pool.ml   Mon Feb 01 17:10:55 2010 +0000
+++ b/ocaml/xapi/xapi_pool.ml   Mon Feb 01 17:11:06 2010 +0000
@@ -382,6 +382,7 @@
                        Client.Network.pool_introduce ~rpc ~session_id
                                ~name_label:my_name
                                
~name_description:network.API.network_name_description
+                               ~mTU:network.API.network_MTU
                                ~other_config:network.API.network_other_config
                                ~bridge:network.API.network_bridge in
 

Attachment: network-mtu
Description: Text document

_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-api
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-API] [PATCH] Add Network.MTU field, Rob Hoes <=