3 dnl Creates a directory tree for use with "interface-reconfigure --root-dir".
6 interface-reconfigure \
7 InterfaceReconfigure.py \
8 InterfaceReconfigureBridge.py \
9 InterfaceReconfigureVswitch.py
11 cp $top_srcdir/xenserver/opt_xensource_libexec_$script $script
15 cat > etc/xensource-inventory <<EOF
16 PRODUCT_BRAND='XenServer'
17 PRODUCT_NAME='xenenterprise'
18 PRODUCT_VERSION='5.5.0'
20 KERNEL_VERSION='2.6.18-128.1.6.el5.xs5.5.0.505.1024xen'
22 INSTALLATION_DATE='2010-02-10 16:45:28.748345'
23 PRIMARY_DISK='/dev/disk/by-id/scsi-360022190add7fc001241a14e0ee3e85c'
24 BACKUP_PARTITION='/dev/disk/by-id/scsi-360022190add7fc001241a14e0ee3e85c-part2'
25 INSTALLATION_UUID='852ee692-71b4-439e-abfb-0eba72dc85f0'
26 CONTROL_DOMAIN_UUID='44e6b66e-3074-4a3c-bbcd-756d845a3b56'
27 DEFAULT_SR_PHYSDEVS='/dev/sda3'
29 MANAGEMENT_INTERFACE='xenbr2'
32 mkdir -p etc/xensource
33 echo vswitch > etc/xensource/network.conf
46 mkdir -p `dirname $utility`
47 cat > $utility <<'EOF'
54 mkdir -p etc/sysconfig/network-scripts
56 mkdir -p sys/class/net/${1}
57 echo ${2} > sys/class/net/${1}/address
58 echo ${3} > sys/class/net/${1}/tx_queue_len
60 : >> etc/sysconfig/network-scripts/ifcfg-${1}
63 configure_netdev lo 00:00:00:00:00:00 0
64 configure_netdev eth0 00:22:19:22:4b:af 1000
65 configure_netdev eth1 00:22:19:22:4b:b1 1000
66 configure_netdev eth2 00:15:17:a0:29:80 1000
67 configure_netdev eth3 00:15:17:a0:29:81 1000
68 configure_netdev eth4 00:1b:21:29:ce:51 1000
71 cat > var/xapi/network.dbcache <<'EOF'
72 <?xml version="1.0" ?>
73 <xenserver-network-configuration>
74 <pif ref="OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6">
76 <tunnel_access_PIF_of/>
81 OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
84 bd62a141-091f-3909-e334-0334f67ff3be
102 <ip_configuration_mode>
104 </ip_configuration_mode>
114 </currently_attached>
119 OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5
122 <pif ref="OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806">
124 <tunnel_access_PIF_of/>
132 df8d35c2-cc3a-a623-7065-d987a29feb75
150 <ip_configuration_mode>
152 </ip_configuration_mode>
162 </currently_attached>
167 OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531
170 <pif ref="OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768">
172 <tunnel_access_PIF_of/>
177 OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
180 2f87fc95-5ab4-571a-2487-3f4ac1985663
198 <ip_configuration_mode>
200 </ip_configuration_mode>
210 </currently_attached>
215 OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d
218 <pif ref="OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e">
220 <tunnel_access_PIF_of/>
228 d2dfdab3-daf4-afea-f055-a25a0d24d714
234 OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
246 <ip_configuration_mode>
248 </ip_configuration_mode>
258 </currently_attached>
263 OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47
266 <pif ref="OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc">
269 OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
272 <tunnel_access_PIF_of/>
280 f4ba396e-a993-a592-5fbc-a1d566afb59e
298 <ip_configuration_mode>
300 </ip_configuration_mode>
310 </currently_attached>
315 OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32
318 <pif ref="OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15">
320 <tunnel_access_PIF_of/>
328 646ca9a1-36ad-e2f9-3ecc-1e5622c201c2
346 <ip_configuration_mode>
348 </ip_configuration_mode>
358 </currently_attached>
363 OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe
366 <pif ref="OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3">
368 <tunnel_access_PIF_of/>
376 3941edd2-865b-8dd8-61f0-199f5e1fa652
382 OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
394 <ip_configuration_mode>
396 </ip_configuration_mode>
406 </currently_attached>
411 OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17
414 <pif ref="OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11">
417 OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
420 <tunnel_access_PIF_of/>
428 6c0327a9-afa3-fc19-6798-a1bfe20095ed
446 <ip_configuration_mode>
448 </ip_configuration_mode>
457 OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
462 </currently_attached>
467 OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a
470 <bond ref="OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e">
472 OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
475 dad825f1-6d81-386e-849c-5589281e53e1
479 OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
482 OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
486 <vlan ref="OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c">
488 OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
491 841814da-d0d2-9da4-0b2e-b6143480bbfb
494 OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
497 <vlan ref="OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297">
499 OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
502 399279a2-5ccd-5368-9af3-8622a1f1ac82
505 OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
508 <network ref="OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47">
511 OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
519 99be2da4-6c33-6f8e-49ea-3bc592fe3c85
522 <network ref="OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32">
525 OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
533 2902ae1b-8013-897a-b697-0b200ea3aaa5
536 <network ref="OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a">
539 OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
547 45cbbb43-113d-a712-3231-c6463f253cef
550 <network ref="OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d">
553 OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
561 99f8771a-645a-26a3-e06c-30a401f1d009
564 <network ref="OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe">
567 OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15
575 d08c8749-0c8f-9e8d-ce25-fd364661ee99
578 <network ref="OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5">
581 OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
588 <vswitch-disable-in-band>
590 </vswitch-disable-in-band>
593 c9eecb03-560d-61de-b6a8-56dfc766f67e
596 <network ref="OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531">
599 OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806
607 d2c14c89-29cc-51d4-7664-633eff02b2ad
610 <network ref="OpaqueRef:0b7354a4-8f4b-aa08-2f16-a22c117e4211">
617 dc0f0632-c2aa-1b78-2fea-0d3a23c51740
620 <network ref="OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17">
623 OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
631 db7bdc03-074d-42ae-fc73-9b06de1d57f6
634 <pool ref="OpaqueRef:a765d06c-fc82-cc67-8f6c-fd8db45f6a84">
636 <vswitch-controller-fail-mode>
638 </vswitch-controller-fail-mode>
641 </xenserver-network-configuration>
645 m4_define([IFR_RUN], [./interface-reconfigure --root-prefix=$PWD --no-syslog])
647 m4_define([IFR_FILTER], [sed -n -e "s,$PWD,,g" -e 's/ -- /\
648 /g' -e '/^Running command:/!p' stderr])
650 AT_BANNER([interface-reconfigure])
652 AT_SETUP([non-VLAN, non-bond])
653 AT_KEYWORDS([interface-reconfigure])
656 AT_CHECK([IFR_RUN --force xenbr2 up], [0], [], [stderr])
657 AT_CHECK([IFR_FILTER], [0], [[Force interface xenbr2 up
658 Loading xapi database cache from /var/xapi/network.dbcache
659 Configured for Vswitch datapath
661 Writing network configuration for xenbr2
662 Configuring xenbr2 using DHCP configuration
663 configure_datapath: bridge - xenbr2
664 configure_datapath: physical - [u'eth2']
665 configure_datapath: extra ports - []
666 configure_datapath: extra bonds - []
667 Applying changes to /etc/sysconfig/network-scripts/route-xenbr2 configuration
668 Applying changes to /etc/sysconfig/network configuration
669 Applying changes to /etc/sysconfig/network-scripts/ifcfg-xenbr2 configuration
670 /sbin/ifconfig eth2 up mtu 1500
671 /sbin/ethtool -K eth2 gro off lro off
672 /usr/bin/ovs-vsctl --timeout=20
673 --with-iface --if-exists del-port eth2
674 --may-exist add-br xenbr2
675 --may-exist add-port xenbr2 eth2
676 set Bridge xenbr2 other-config:hwaddr="00:15:17:a0:29:80"
677 set Bridge xenbr2 fail_mode=standalone
678 remove Bridge xenbr2 other_config disable-in-band
679 br-set-external-id xenbr2 xs-network-uuids d08c8749-0c8f-9e8d-ce25-fd364661ee99
682 Committing changes to /etc/sysconfig/network-scripts/route-xenbr2 configuration
683 Committing changes to /etc/sysconfig/network configuration
684 Committing changes to /etc/sysconfig/network-scripts/ifcfg-xenbr2 configuration
687 AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xenbr2], [0],
688 [# DO NOT EDIT: This file (ifcfg-xenbr2) was autogenerated by interface-reconfigure
694 PERSISTENT_DHCLIENT=yes
698 # Simulate interface-reconfigure creating xenbr2, so that we can tell
699 # interface-reconfigure to take it back down.
700 AT_CHECK([configure_netdev xenbr2 00:15:17:a0:29:80 0])
702 AT_CHECK([IFR_RUN --force xenbr2 down], [0], [], [stderr])
703 AT_CHECK([IFR_FILTER], [0], [[Force interface xenbr2 down
704 Loading xapi database cache from /var/xapi/network.dbcache
705 Configured for Vswitch datapath
708 deconfigure ipdev xenbr2 on xenbr2
709 deconfigure_bridge: bridge - xenbr2
710 action_down: bring down physical devices - [u'eth2']
711 /sbin/ifconfig eth2 down
712 /usr/bin/ovs-vsctl --timeout=20
713 --with-iface --if-exists del-port xenbr2
714 --if-exists del-br xenbr2
719 AT_SETUP([VLAN, non-bond])
720 AT_KEYWORDS([interface-reconfigure])
723 AT_CHECK([IFR_RUN --force xapi3 up], [0], [], [stderr])
724 AT_CHECK([IFR_FILTER], [0], [[Force interface xapi3 up
725 Loading xapi database cache from /var/xapi/network.dbcache
726 Configured for Vswitch datapath
728 Writing network configuration for xapi3
729 Configuring xapi3 using None configuration
730 configure_datapath: bridge - xenbr3
731 configure_datapath: physical - [u'eth3']
732 configure_datapath: extra ports - []
733 configure_datapath: extra bonds - []
734 Applying changes to /etc/sysconfig/network-scripts/route-xapi3 configuration
735 Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi3 configuration
736 /sbin/ifconfig eth3 up mtu 1500
737 /sbin/ethtool -K eth3 gro off lro off
738 /usr/bin/ovs-vsctl --timeout=20
739 --with-iface --if-exists del-port eth3
740 --may-exist add-br xenbr3
741 --may-exist add-port xenbr3 eth3
742 set Bridge xenbr3 other-config:hwaddr="00:15:17:a0:29:81"
743 set Bridge xenbr3 fail_mode=standalone
744 remove Bridge xenbr3 other_config disable-in-band
745 br-set-external-id xenbr3 xs-network-uuids 2902ae1b-8013-897a-b697-0b200ea3aaa5;db7bdc03-074d-42ae-fc73-9b06de1d57f6
746 --may-exist add-br xapi3 xenbr3 123
747 br-set-external-id xapi3 xs-network-uuids 2902ae1b-8013-897a-b697-0b200ea3aaa5;db7bdc03-074d-42ae-fc73-9b06de1d57f6
748 set Interface xapi3 MAC="00:15:17:a0:29:81"
751 Committing changes to /etc/sysconfig/network-scripts/route-xapi3 configuration
752 Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi3 configuration
755 AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xapi3], [0],
756 [# DO NOT EDIT: This file (ifcfg-xapi3) was autogenerated by interface-reconfigure
765 # Simulate interface-reconfigure creating xapi3, so that we can tell
766 # interface-reconfigure to take it back down.
767 AT_CHECK([configure_netdev xapi3 00:23:20:AC:AF:02 0])
769 AT_CHECK([IFR_RUN --force xapi3 down], [0], [], [stderr])
770 AT_CHECK([IFR_FILTER], [0], [[Force interface xapi3 down
771 Loading xapi database cache from /var/xapi/network.dbcache
772 Configured for Vswitch datapath
775 deconfigure ipdev xapi3 on xenbr3
776 deconfigure_bridge: bridge - xapi3
777 action_down: no more masters, bring down slave xenbr3
778 deconfigure_bridge: bridge - xenbr3
779 action_down: bring down physical devices - [u'eth3']
780 /sbin/ifconfig eth3 down
781 /usr/bin/ovs-vsctl --timeout=20
782 --with-iface --if-exists del-port xapi3
783 --if-exists del-br xapi3
784 --if-exists del-br xenbr3
789 AT_SETUP([Bond, non-VLAN])
790 AT_KEYWORDS([interface-reconfigure])
793 # Pretend that bond0 exists, even though it would really be created by
794 # a "create-bond" call in an ovs-vsctl invocation within
795 # interface-reconfigure, because otherwise interface-reconfigure will
796 # die with "failed to apply changes: netdev: up: device bond0 does not
797 # exist" after it thinks it created bond0.
798 AT_CHECK([configure_netdev bond0 00:23:20:e6:39:75 0])
800 AT_CHECK([IFR_RUN --force xapi1 up], [0], [], [stderr])
801 AT_CHECK([IFR_FILTER], [0], [[Force interface xapi1 up
802 Loading xapi database cache from /var/xapi/network.dbcache
803 Configured for Vswitch datapath
805 Writing network configuration for xapi1
806 Configuring xapi1 using None configuration
807 configure_datapath: leaving bond bond0 up
808 configure_datapath: leaving bond bond0 up
809 configure_datapath: bridge - xapi1
810 configure_datapath: physical - [u'eth0', u'eth1']
811 configure_datapath: extra ports - []
812 configure_datapath: extra bonds - []
813 netdev: down: device xenbr0 does not exist, ignoring
814 netdev: down: device xenbr1 does not exist, ignoring
815 Applying changes to /etc/sysconfig/network-scripts/route-xapi1 configuration
816 Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi1 configuration
817 /sbin/ifconfig eth0 up mtu 1500
818 /sbin/ethtool -K eth0 gro off lro off
819 /sbin/ifconfig eth1 up mtu 1500
820 /sbin/ethtool -K eth1 gro off lro off
821 /usr/bin/ovs-vsctl --timeout=20
822 --if-exists del-br xenbr0
823 --if-exists del-br xenbr1
824 --with-iface --if-exists del-port eth0
825 --with-iface --if-exists del-port eth1
826 --may-exist add-br xapi1
827 --with-iface --if-exists del-port bond0
828 --fake-iface add-bond xapi1 bond0 eth0 eth1
829 set Port bond0 MAC="00:22:19:22:4b:af" other-config:bond-miimon-interval=100 bond_downdelay=200 bond_updelay=31000 other-config:bond-detect-mode=carrier lacp=off bond_mode=balance-slb
830 set Bridge xapi1 other-config:hwaddr="00:22:19:22:4b:af"
831 set Bridge xapi1 fail_mode=standalone
832 remove Bridge xapi1 other_config disable-in-band
833 br-set-external-id xapi1 xs-network-uuids 45cbbb43-113d-a712-3231-c6463f253cef;99be2da4-6c33-6f8e-49ea-3bc592fe3c85
835 action_up: bring up bond0
836 /sbin/ifconfig bond0 up
838 Committing changes to /etc/sysconfig/network-scripts/route-xapi1 configuration
839 Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi1 configuration
842 AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xapi1], [0],
843 [# DO NOT EDIT: This file (ifcfg-xapi1) was autogenerated by interface-reconfigure
852 # Simulate interface-reconfigure creating xapi1, so that we can tell
853 # interface-reconfigure to take it back down.
854 AT_CHECK([configure_netdev xapi1 00:22:19:22:4B:AF 0])
856 AT_CHECK([IFR_RUN --force xapi1 down], [0], [], [stderr])
857 AT_CHECK([IFR_FILTER], [0], [[Force interface xapi1 down
858 Loading xapi database cache from /var/xapi/network.dbcache
859 Configured for Vswitch datapath
862 deconfigure ipdev xapi1 on xapi1
863 deconfigure_bridge: bridge - xapi1
864 action_down: bring down physical devices - [u'eth0', u'eth1']
865 /sbin/ifconfig eth0 down
866 /sbin/ifconfig eth1 down
867 /usr/bin/ovs-vsctl --timeout=20
868 --with-iface --if-exists del-port xapi1
869 --if-exists del-br xapi1
874 AT_SETUP([VLAN on bond])
875 AT_KEYWORDS([interface-reconfigure])
878 # Pretend that bond0 exists, even though it would really be created by
879 # a "create-bond" call in an ovs-vsctl invocation within
880 # interface-reconfigure, because otherwise interface-reconfigure will
881 # die with "failed to apply changes: netdev: up: device bond0 does not
882 # exist" after it thinks it created bond0.
883 AT_CHECK([configure_netdev bond0 00:23:20:e6:39:75 0])
885 AT_CHECK([IFR_RUN --force xapi2 up], [0], [], [stderr])
886 AT_CHECK([IFR_FILTER], [0], [[Force interface xapi2 up
887 Loading xapi database cache from /var/xapi/network.dbcache
888 Configured for Vswitch datapath
890 Writing network configuration for xapi2
891 Configuring xapi2 using None configuration
892 configure_datapath: leaving bond bond0 up
893 configure_datapath: leaving bond bond0 up
894 configure_datapath: bridge - xapi1
895 configure_datapath: physical - [u'eth0', u'eth1']
896 configure_datapath: extra ports - []
897 configure_datapath: extra bonds - []
898 netdev: down: device xenbr0 does not exist, ignoring
899 netdev: down: device xenbr1 does not exist, ignoring
900 Applying changes to /etc/sysconfig/network-scripts/route-xapi2 configuration
901 Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi2 configuration
902 /sbin/ifconfig eth0 up mtu 1500
903 /sbin/ethtool -K eth0 gro off lro off
904 /sbin/ifconfig eth1 up mtu 1500
905 /sbin/ethtool -K eth1 gro off lro off
906 /usr/bin/ovs-vsctl --timeout=20
907 --if-exists del-br xenbr0
908 --if-exists del-br xenbr1
909 --with-iface --if-exists del-port eth0
910 --with-iface --if-exists del-port eth1
911 --may-exist add-br xapi1
912 --with-iface --if-exists del-port bond0
913 --fake-iface add-bond xapi1 bond0 eth0 eth1
914 set Port bond0 MAC="00:22:19:22:4b:af" other-config:bond-miimon-interval=100 bond_downdelay=200 bond_updelay=31000 other-config:bond-detect-mode=carrier lacp=off bond_mode=balance-slb
915 set Bridge xapi1 other-config:hwaddr="00:22:19:22:4b:af"
916 set Bridge xapi1 fail_mode=standalone
917 remove Bridge xapi1 other_config disable-in-band
918 br-set-external-id xapi1 xs-network-uuids 45cbbb43-113d-a712-3231-c6463f253cef;99be2da4-6c33-6f8e-49ea-3bc592fe3c85
919 --may-exist add-br xapi2 xapi1 4
920 br-set-external-id xapi2 xs-network-uuids 45cbbb43-113d-a712-3231-c6463f253cef;99be2da4-6c33-6f8e-49ea-3bc592fe3c85
921 set Interface xapi2 MAC="00:22:19:22:4b:af"
923 action_up: bring up bond0
924 /sbin/ifconfig bond0 up
926 Committing changes to /etc/sysconfig/network-scripts/route-xapi2 configuration
927 Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi2 configuration
930 AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xapi2], [0],
931 [# DO NOT EDIT: This file (ifcfg-xapi2) was autogenerated by interface-reconfigure
940 # Simulate interface-reconfigure creating xapi2, so that we can tell
941 # interface-reconfigure to take it back down.
942 AT_CHECK([configure_netdev xapi2 00:23:20:A4:71:C2 0])
944 AT_CHECK([IFR_RUN --force xapi2 down], [0], [], [stderr])
945 AT_CHECK([IFR_FILTER], [0], [[Force interface xapi2 down
946 Loading xapi database cache from /var/xapi/network.dbcache
947 Configured for Vswitch datapath
950 deconfigure ipdev xapi2 on xapi1
951 deconfigure_bridge: bridge - xapi2
952 action_down: no more masters, bring down slave xapi1
953 deconfigure_bridge: bridge - xapi1
954 action_down: bring down physical devices - [u'eth0', u'eth1']
955 /sbin/ifconfig eth0 down
956 /sbin/ifconfig eth1 down
957 /usr/bin/ovs-vsctl --timeout=20
958 --with-iface --if-exists del-port xapi2
959 --if-exists del-br xapi2
960 --if-exists del-br xapi1