[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: xen-api <xen-api@xxxxxxxxxxxxxxxxxxx>
  • 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
  • List-id: Discussion of API issues surrounding Xen <xen-api.lists.xensource.com>

# 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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.