[pve-devel] [PATCH SERIES v2 pve-storage/qemu-server] add external qcow2 snapshot support

2024-09-30 Thread Alexandre Derumier via pve-devel
ages changelog v2: implement lvm with external qcow2 snapshots pve-storage: Alexandre Derumier (2): add external snasphot support add lvmqcow2 plugin: (lvm with external qcow2 snapshot) src/PVE/Storage.pm| 2 + src/PVE/Storage/DirPlugin.pm | 1 + src/PVE/

[pve-devel] [PATCH v2 qemu-server 1/1] implement external snapshot

2024-09-30 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Signed-off-by: Alexandre Derumier --- PVE/QemuServer.pm | 108 -- 1 file changed, 95 insertions(+), 13 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index b26da505..1523df15 100644 --- a/PVE/QemuServer.pm +++ b

[pve-devel] [PATCH v2 pve-storage 2/2] add lvmqcow2 plugin: (lvm with external qcow2 snapshot)

2024-09-30 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Signed-off-by: Alexandre Derumier --- src/PVE/Storage.pm| 2 + src/PVE/Storage/LvmQcow2Plugin.pm | 460 ++ src/PVE/Storage/Makefile | 3 +- 3 files changed, 464 insertions(+), 1 deletion(-) create mode 100644 src/PVE

[pve-devel] [PATCH v2 pve-storage 1/2] add external snasphot support

2024-09-30 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Signed-off-by: Alexandre Derumier --- src/PVE/Storage/DirPlugin.pm | 1 + src/PVE/Storage/Plugin.pm| 225 +++ 2 files changed, 201 insertions(+), 25 deletions(-) diff --git a/src/PVE/Storage/DirPlugin.pm b/src/PVE/Storage/DirPlugin.pm

[pve-devel] [PATCH pve-storage] lvmplugin: fix: activate|deactivate volume, add missing storeid param in path sub

2024-09-25 Thread Alexandre Derumier via pve-devel
--- Begin Message --- $storeid param is missing and $snapname is used as third param. This seem to works actually because $snapname is always empty in lvm Signed-off-by: Alexandre Derumier --- src/PVE/Storage/LVMPlugin.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a

[pve-devel] [PATCH SERIES pve-storage/qemu-server] add external qcow2 snapshot support

2024-09-19 Thread Alexandre Derumier via pve-devel
pve-storage: Alexandre Derumier (1): add external snasphot support src/PVE/Storage/DirPlugin.pm | 1 + src/PVE/Storage/Plugin.pm| 220 +++ 2 files changed, 196 insertions(+), 25 deletions(-) qemu-server: Alexandre Derumier (1): implement external snaps

[pve-devel] [PATCH qemu-server 1/1] implement external snapshot

2024-09-19 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Signed-off-by: Alexandre Derumier --- PVE/QemuServer.pm | 74 +++ 1 file changed, 62 insertions(+), 12 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index b26da505..646e3476 100644 --- a/PVE/QemuServer.pm +++ b

[pve-devel] [PATCH pve-storage 1/1] add external snasphot support

2024-09-19 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Signed-off-by: Alexandre Derumier --- src/PVE/Storage/DirPlugin.pm | 1 + src/PVE/Storage/Plugin.pm| 220 +++ 2 files changed, 196 insertions(+), 25 deletions(-) diff --git a/src/PVE/Storage/DirPlugin.pm b/src/PVE/Storage/DirPlugin.pm

[pve-devel] [PATCH pve-storage 5/5] add volume_underlay_shrink

2024-08-26 Thread Alexandre Derumier via pve-devel
--- Begin Message --- reduce underlay volume size to minimum used Signed-off-by: Alexandre Derumier --- src/PVE/Storage.pm| 15 +++ src/PVE/Storage/LVMQcow2Plugin.pm | 31 +++ src/PVE/Storage/Plugin.pm | 7 +++ 3 files changed

[pve-devel] [PATCH SERIES storage/qemu-server/-manager] RFC : add lvmqcow2 storage support

2024-08-26 Thread Alexandre Derumier via pve-devel
or this error, and try to extend again if needed and resume the vm pve-storage: Alexandre Derumier (5): add lvmqcow2 plugin vdisk_alloc: add underlay_size option add volume_underlay_resize add refresh volume add volume_underlay_shrink src/PVE/Storage.pm| 52 +-

[pve-devel] [PATCH pve-storage 4/5] add refresh volume

2024-08-26 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Signed-off-by: Alexandre Derumier --- src/PVE/Storage.pm| 13 + src/PVE/Storage/LVMQcow2Plugin.pm | 8 src/PVE/Storage/Plugin.pm | 6 ++ 3 files changed, 27 insertions(+) diff --git a/src/PVE/Storage.pm b/src/PVE

[pve-devel] [PATCH pve-manager 1/1] pvestatd: lvmqcow2 : extend disk on io-error

2024-08-26 Thread Alexandre Derumier via pve-devel
m. Signed-off-by: Alexandre Derumier --- PVE/Service/pvestatd.pm | 62 + 1 file changed, 62 insertions(+) diff --git a/PVE/Service/pvestatd.pm b/PVE/Service/pvestatd.pm index 8661f774..72244451 100755 --- a/PVE/Service/pvestatd.pm +++ b/PVE/Service/p

[pve-devel] [PATCH qemu-server 4/6] migration: refresh remote disk size before resume

2024-08-26 Thread Alexandre Derumier via pve-devel
--- Begin Message --- A blockextend occur on source just before the switch. we want to be sure that lvm size on target is correctly refreshed, or we could have io-error is the vm is writing to non available sectors Signed-off-by: Alexandre Derumier --- PVE/CLI/qm.pm

[pve-devel] [PATCH pve-storage 3/5] add volume_underlay_resize

2024-08-26 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Allow to resize the underlay vm volume Signed-off-by: Alexandre Derumier --- src/PVE/Storage.pm| 18 ++ src/PVE/Storage/LVMQcow2Plugin.pm | 12 src/PVE/Storage/Plugin.pm | 7 +++ 3 files changed, 37 insertions

[pve-devel] [PATCH qemu-server 6/6] clone: allocate && shrink lvmcow2 underlay

2024-08-26 Thread Alexandre Derumier via pve-devel
re to detect the exact used size, and we shrink the underlay Signed-off-by: Alexandre Derumier --- PVE/QemuServer.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index a6a40cd..7a9641a 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServ

[pve-devel] [PATCH pve-storage 2/5] vdisk_alloc: add underlay_size option

2024-08-26 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Signed-off-by: Alexandre Derumier --- src/PVE/Storage.pm| 4 ++-- src/PVE/Storage/LVMQcow2Plugin.pm | 5 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/PVE/Storage.pm b/src/PVE/Storage.pm index 97e77c8..385150e 100755 --- a/src/PVE

[pve-devel] [PATCH qemu-server 3/6] qmevent: call qm disk blockextend when write_threshold event is received

2024-08-26 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Signed-off-by: Alexandre Derumier --- qmeventd/qmeventd.c | 27 +++ 1 file changed, 27 insertions(+) diff --git a/qmeventd/qmeventd.c b/qmeventd/qmeventd.c index d8f3ee7..4f45b6f 100644 --- a/qmeventd/qmeventd.c +++ b/qmeventd/qmeventd.c @@ -229,6

[pve-devel] [PATCH qemu-server 5/6] qemu_img_format: lvmqcow2 is a path_storage

2024-08-26 Thread Alexandre Derumier via pve-devel
--- Begin Message --- needed for snapshot Signed-off-by: Alexandre Derumier --- PVE/QemuServer.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index fb67ac9..a6a40cd 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -7922,7

[pve-devel] [PATCH pve-storage 1/5] add lvmqcow2 plugin

2024-08-26 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Signed-off-by: Alexandre Derumier --- src/PVE/Storage.pm| 2 + src/PVE/Storage/LVMQcow2Plugin.pm | 218 ++ src/PVE/Storage/Makefile | 3 +- 3 files changed, 222 insertions(+), 1 deletion(-) create mode 100644 src/PVE

[pve-devel] [PATCH qemu-server 1/6] lvmqcow2: set disk write threshold

2024-08-26 Thread Alexandre Derumier via pve-devel
o set threshold again when we extend the disk) Signed-off-by: Alexandre Derumier --- PVE/QemuServer.pm | 97 +++ 1 file changed, 97 insertions(+) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 88c274d..3acb32e 100644 --- a/PVE/QemuServer.pm +++

[pve-devel] [PATCH qemu-server 2/6] qm cli: add blockextend

2024-08-26 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Increase the underlay storage size to an higher value than current max offset or 1 chunk bigger we max write offset is 0 Signed-off-by: Alexandre Derumier --- PVE/CLI/qm.pm | 31 PVE/QemuServer.pm | 52

[pve-devel] [PATCH pve-storage] qcow2 format: enable subcluster allocation by default

2024-07-03 Thread Alexandre Derumier via pve-devel
2 MB 262 IOPS 2269 IOPS Signed-off-by: Alexandre Derumier --- src/PVE/Storage/Plugin.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PVE/Storage/Plugin.pm b/src/PVE/Storage/Plugin.pm index 6444390..31b20fe 100644 --- a/src/PVE/Storage

[pve-devel] [PATCH pve-network 1/1] vnets : add ports isolation

2024-04-25 Thread Alexandre Derumier via pve-devel
traffic between vms but allow traffic coming from outside. Main usage is for layer3 routed or natted setup, but some users have requested it for layer2/bridge network with proxy arp. So we can enable it at vnet level. Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/VnetPlugin.pm | 5

[pve-devel] [PATCH pve-manager 1/1] sdn: vnet: add ports-isolation option.

2024-04-25 Thread Alexandre Derumier via pve-devel
--- Begin Message --- also move vlan-aware in advanced section Signed-off-by: Alexandre Derumier --- www/manager6/sdn/VnetEdit.js | 12 1 file changed, 12 insertions(+) diff --git a/www/manager6/sdn/VnetEdit.js b/www/manager6/sdn/VnetEdit.js index cdd83ed4..a00f83e6 100644 --- a

[pve-devel] [PATCH pve-network/pve-common/pve-manager] fix #4300 : sdn: add bridge ports isolation

2024-04-25 Thread Alexandre Derumier via pve-devel
--- Begin Message --- This patches series add support for sdn vnet bridge ports isolation pve-network: Alexandre Derumier (1): vnets : add ports isolation src/PVE/Network/SDN/VnetPlugin.pm | 5 + src/PVE/Network/SDN/Zones/Plugin.pm | 1 + 2 files changed, 6 insertions(+) pve-common

[pve-devel] [PATCH pve-common 1/1] tap_plug: add support for bridge port isolation

2024-04-25 Thread Alexandre Derumier via pve-devel
--- Begin Message --- This is allow to block traffic/isolation traffic between all ports on the bridge with isolation (so between the vms), ans still allow incoming traffic from uplink. Signed-off-by: Alexandre Derumier --- src/PVE/Network.pm | 14 -- 1 file changed, 12 insertions

[pve-devel] [PATCH pve-network] fix #5398: vxlan: only ipv4 is currently supported

2024-04-24 Thread Alexandre Derumier via pve-devel
--- Begin Message --- ifupdown2 only support ipv4 (could be fixed) frr/evpn: don't support ipv6 at all Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 2 +- src/PVE/Network/SDN/Zones/VxlanPlugin.pm | 2 +- 2 files changed, 2 insertions(+), 2 dele

[pve-devel] [PATCH pve-network] fix #5343 : isis: fix ipv6 && custom router config

2024-04-16 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Controllers/IsisPlugin.pm| 3 ++- src/test/zones/evpn/isis/expected_controller_config | 2 ++ src/test/zones/evpn/isis_loopback/expected_controller_config | 2 ++ 3 files changed, 6

[pve-devel] [PATCH pve-network] fix #5319: frr.local: add support for bgp-community

2024-04-16 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Need to be inserted after ip prefix-list and before route map Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 15 +-- 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/PVE/Network/SDN/Controllers

[pve-devel] [PATCH pve-network] fix #5344: isis: add isis networkid parser

2024-04-16 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Controllers/IsisPlugin.pm | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/PVE/Network/SDN/Controllers/IsisPlugin.pm b/src/PVE/Network/SDN/Controllers/IsisPlugin.pm index afea82e

[pve-devel] [PATCH v2 pve-network] fix #5364: bgp|evpn: derivated router-id from mac address for ipv6 underlay

2024-04-12 Thread Alexandre Derumier via pve-devel
es of iface mac address as unique id changelog V2: add missing test Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Controllers/BgpPlugin.pm | 3 +- src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 7 ++- src/PVE/Network/SDN/Controllers/Plugin.pm | 21 + src/test/ru

[pve-devel] [PATCH pve-network] fix #5364: bgp|evpn: derivated router-id from mac address for ipv6 underlay

2024-04-12 Thread Alexandre Derumier via pve-devel
es of iface mac address as unique id Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Controllers/BgpPlugin.pm | 3 ++- src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 7 +-- src/PVE/Network/SDN/Controllers/Plugin.pm | 21 +++ src/test/ru

[pve-devel] [PATCH pve-network] fix #5361: evpn: fix ipv6 route-map

2024-04-12 Thread Alexandre Derumier via pve-devel
--- Begin Message --- Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 2 +- src/test/zones/evpn/exitnode/expected_controller_config | 2 +- .../evpn/exitnode_local_routing/expected_controller_config| 2 +- src/test/zones/evpn

[pve-devel] [PATCH pve-network] fix #5324: non vlanaware zone: add mtu to veth links

2024-03-25 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Zones/VlanPlugin.pm| 3 +++ src/test/zones/vlan/bridge/expected_sdn_interfaces | 4 src/test/zones/vlan/bridge/sdn_config | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/PVE/Network

[pve-devel] [PATCH frr] bump version to 8.5.4-1+pve1

2024-02-22 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- debian/changelog | 8 frr | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index e630dba..c37526d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +frr (8.5.4

[pve-devel] [PATCH pve-network 1/2] patches: update slaac patch

2024-02-22 Thread Alexandre Derumier
remove self._sysctl_slaac call for bridge, or it'll be called twice Signed-off-by: Alexandre Derumier --- ...6-slaac-support-inet6-auto-accept_ra.patch | 32 +++ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/debian/patches/upstream/0001-add-ipv6-slaac-su

[pve-devel] [PATCH pve-network 2/2] patches: allow ip|ip6-forward option on bridge

2024-02-22 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- debian/patches/series | 1 + ...dress-allow-ip-ip6-forward-on-bridge.patch | 32 +++ 2 files changed, 33 insertions(+) create mode 100644 debian/patches/upstream/0001-address-allow-ip-ip6-forward-on-bridge.patch

[pve-devel] [PATCH pve-network 0/2] allow ip|ip6-forward option on bridge

2024-02-22 Thread Alexandre Derumier
Currently, it's not working only for bridge, because we have a return after bridge default forwarding setup. Alexandre Derumier (2): patches: update slaac patch patches: allow ip|ip6-forward option on bridge debian/patches/series | 1 + ...6-slaac-support-

[pve-devel] [PATCH pve-manager] sdn: evpn: allow empty primary exit node in zone form

2024-02-13 Thread Alexandre Derumier
It's broken since https://git.proxmox.com/?p=pve-network.git;a=commit;h=3e3cafabaf955d53c4c2d4e346bf5c3a5c6d1852 Signed-off-by: Alexandre Derumier --- www/manager6/sdn/zones/EvpnEdit.js | 5 + 1 file changed, 5 insertions(+) diff --git a/www/manager6/sdn/zones/EvpnEdit.js b/www/man

[pve-devel] [PATCH v2 pve-network 4/6] ipam: phpipam: fix get_ip_from_mac

2024-02-13 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm b/src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm index f3f22b5..bb9f322 100644 --- a/src/PVE/Network

[pve-devel] [PATCH v2 pve-network 1/6] ipams : add_next_freeip : return ip not cidr

2024-02-13 Thread Alexandre Derumier
we want same result than add_next_free_range Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Ipams/NetboxPlugin.pm | 13 - src/PVE/Network/SDN/Ipams/PVEPlugin.pm | 2 +- src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm | 2 +- 3 files changed, 6 insertions(+), 11

[pve-devel] [PATCH v2 pve-network 0/6] external ipams fixes

2024-02-13 Thread Alexandre Derumier
multiples ipam fixes v2: add netbox ipam ip_is_gateway fix Alexandre Derumier (6): ipams : add_next_freeip : return ip not cidr sdn: add proxy support for api calls ipam: phpipam: fix subnet create ipam: phpipam: fix get_ip_from_mac ipam: phpipam: add_range_next_freeip ipam: netbox

[pve-devel] [PATCH v2 pve-network 6/6] ipam: netbox : fix ip_is_gateway

2024-02-13 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Ipams/NetboxPlugin.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PVE/Network/SDN/Ipams/NetboxPlugin.pm b/src/PVE/Network/SDN/Ipams/NetboxPlugin.pm index 14a69d9..d923269 100644 --- a/src/PVE/Network/SDN/Ipams

[pve-devel] [PATCH v2 pve-network 5/6] ipam: phpipam: add_range_next_freeip

2024-02-13 Thread Alexandre Derumier
Currently is not possible in phpipam to search in specific range, fallback to full subnet search Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm | 12 1 file changed, 12 insertions(+) diff --git a/src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm b/src

[pve-devel] [PATCH v2 pve-network 3/6] ipam: phpipam: fix subnet create

2024-02-13 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm b/src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm index 7b3168d..f3f22b5 100644 --- a/src/PVE/Network/SDN

[pve-devel] [PATCH v2 pve-network 2/6] sdn: add proxy support for api calls

2024-02-13 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN.pm | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/PVE/Network/SDN.pm b/src/PVE/Network/SDN.pm index 3af09b5..b8f27d9 100644 --- a/src/PVE/Network/SDN.pm +++ b/src/PVE/Network/SDN.pm @@ -264,10 +264,9 @@ sub

[pve-devel] [PATCH pve-manager] qemu: bump max cores to 256 by socket

2024-01-12 Thread Alexandre Derumier
New epyc cpu already support 168 threads qemu 8.1 support 1024 cores with q35 --- www/manager6/qemu/ProcessorEdit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/manager6/qemu/ProcessorEdit.js b/www/manager6/qemu/ProcessorEdit.js index b845ff66..b3538727 100644 --- a/w

[pve-devel] [PATCH ceph 1/2] patch: debian/rules: fix build type

2024-01-09 Thread Alexandre Derumier
source: https://github.com/ceph/ceph/pull/54891 build packages with 'RelWithDebInfo' to avoid to build rocksdb in debug This is already the default in ubuntu packages https://bugs.launchpad.net/ubuntu/+source/ceph/+bug/1894453 --- patches/0021-debian-rules-fix-buildtype.patch | 22 ++

[pve-devel] [PATCH ceph 0/2] Build rocksdb in non-debug mode

2024-01-09 Thread Alexandre Derumier
ma-hosting.fr and submit latency /3 https://pbs.twimg.com/media/GDFmBJOW8AApWYZ?format=jpg&name=large Alexandre Derumier (2): patch: debian/rules: fix build type patch: add 0022-rocksb-inherit-parent-cmake-cxx-flags.patch patches/0021-debian-rules-fix-buildtype.patch | 22 +++ ...ock

[pve-devel] [PATCH ceph 2/2] patch: add 0022-rocksb-inherit-parent-cmake-cxx-flags.patch

2024-01-09 Thread Alexandre Derumier
upstream patch: https://github.com/ceph/ceph/pull/54918 --- ...ocksb-inherit-parent-cmake-cxx-flags.patch | 57 +++ patches/series| 3 +- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 patches/0022-rocksb-inherit-parent-cmake-c

[pve-devel] [pve-network 3/4] subnets: call add_range_next_freeip only if dhcp is defined

2024-01-04 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Subnets.pm | 13 + src/PVE/Network/SDN/Vnets.pm | 4 ++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/PVE/Network/SDN/Subnets.pm b/src/PVE/Network/SDN/Subnets.pm index 3b08dcd..4767850 100644 --- a

[pve-devel] [pve-network 1/4] vnets: use ipam without dhcp

2024-01-04 Thread Alexandre Derumier
User should be able to use ipam without need to use dhcp. (with static configuration for example). Could be use to firewall rules or other rules based on ipam Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Vnets.pm | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff

[pve-devel] [pve-network 2/4] vnets: add_next_free_cidr : skip if ipamreservation is not defined

2024-01-04 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Vnets.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PVE/Network/SDN/Vnets.pm b/src/PVE/Network/SDN/Vnets.pm index 060cb3c..0268684 100644 --- a/src/PVE/Network/SDN/Vnets.pm +++ b/src/PVE/Network/SDN/Vnets.pm

[pve-devel] [pve-manager 1/1] sdn: zones: add ipam reservation option.

2024-01-04 Thread Alexandre Derumier
Manual: user need to manually do reservation static: ip is auto assign at vm create && remove at vm delete dynamic: ip is auto assign at vm start && remove at vm stop (not yet implemented) Signed-off-by: Alexandre Derumier --- www/manager6/sdn/zones/Base.js | 12

[pve-devel] [pve-network 4/4] api2: ipam status: display ipam zones without dhcp flag

2024-01-04 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/API2/Network/SDN/Ipams.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PVE/API2/Network/SDN/Ipams.pm b/src/PVE/API2/Network/SDN/Ipams.pm index 27ead02..a70a2f3 100644 --- a/src/PVE/API2/Network/SDN/Ipams.pm +++ b/src/PVE

[pve-devel] [qemu-server 1/1] add_next_free_cidr: remove old dhcprange param

2024-01-04 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- PVE/QemuServer.pm | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 600d0a8..a00e09e 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -5279,7 +5279,7 @@ sub vmconfig_apply_pending

[pve-devel] [pve-network/qemu-server/pve-container/pve-manager] RFC: use ipam without dhcp

2024-01-04 Thread Alexandre Derumier
ly the ips reservation - Static: ip is auto assigned at vm create && removed at vm delete - Dynamic: ip is auto assigned at vm start && removed at vm stop (not yet implemented) pve-network: Alexandre Derumier (4): vnets: use ipam without dhcp vnets: add_next_free_cidr : skip

[pve-devel] [pve-network 2/5] ipams : add_next_freeip : return ip not cidr

2024-01-04 Thread Alexandre Derumier
we want same result than add_next_free_range Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Ipams/NetboxPlugin.pm | 13 - src/PVE/Network/SDN/Ipams/PVEPlugin.pm | 2 +- src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm | 2 +- 3 files changed, 6 insertions(+), 11

[pve-devel] [pve-network 5/5] ipam: phpipam: add_range_next_freeip

2024-01-04 Thread Alexandre Derumier
Currently is not possible in phpipam to search in specific range, fallback to full subnet search Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm | 12 1 file changed, 12 insertions(+) diff --git a/src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm b/src

[pve-devel] [pve-network 4/5] ipam: phpipam: fix get_ip_from_mac

2024-01-04 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm b/src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm index f3f22b5..bb9f322 100644 --- a/src/PVE/Network

[pve-devel] [pve-network 3/5] ipam: phpipam: fix subnet create

2024-01-04 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm b/src/PVE/Network/SDN/Ipams/PhpIpamPlugin.pm index 7b3168d..f3f22b5 100644 --- a/src/PVE/Network/SDN

[pve-devel] [pve-network 0/5] external ipams fixes

2024-01-04 Thread Alexandre Derumier
This patch serie is fixing multiple bug in phpipam, and dd_next_freeip in differents ipams Alexandre Derumier (5): sdn: add proxy support for api calls ipams : add_next_freeip : return ip not cidr ipam: phpipam: fix subnet create ipam: phpipam: fix get_ip_from_mac ipam: phpipam

[pve-devel] [pve-network 1/5] sdn: add proxy support for api calls

2024-01-04 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN.pm | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/PVE/Network/SDN.pm b/src/PVE/Network/SDN.pm index 3af09b5..b8f27d9 100644 --- a/src/PVE/Network/SDN.pm +++ b/src/PVE/Network/SDN.pm @@ -264,10 +264,9 @@ sub

[pve-devel] [PATCH pve-network 3/7] dnsmasq service: run service in vrf

2023-12-19 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/services/01-dnsmasq-vrf.conf | 4 src/services/Makefile| 1 + 2 files changed, 5 insertions(+) create mode 100644 src/services/01-dnsmasq-vrf.conf diff --git a/src/services/01-dnsmasq-vrf.conf b/src/services/01-dnsmasq-vrf.conf new

[pve-devel] [PATCH pve-network 6/7] zones: qinq: add dhcp support

2023-12-19 Thread Alexandre Derumier
add gateway ip to vnet and force /32 for ipv4 to avoid arp problem, and disable forwarding by security Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Zones/QinQPlugin.pm | 32 + .../zones/qinq/dhcp/expected_sdn_interfaces | 34 +++ src/test

[pve-devel] [PATCH pve-network 2/7] dhcp: enable-ra on layer3 zones only

2023-12-19 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 4 ++-- src/PVE/Network/SDN/Zones/EvpnPlugin.pm | 2 +- src/PVE/Network/SDN/Zones/Plugin.pm | 2 +- src/PVE/Network/SDN/Zones/SimplePlugin.pm | 9 + 4 files changed, 13 insertions(+), 4 deletions

[pve-devel] [PATCH pve-network 4/7] zones: evpn: add dhcp support

2023-12-19 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Zones/EvpnPlugin.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/src/PVE/Network/SDN/Zones/EvpnPlugin.pm b/src/PVE/Network/SDN/Zones/EvpnPlugin.pm index 3c3278a..26a22c7 100644 --- a/src/PVE/Network/SDN/Zones/EvpnPlugin.pm +++ b

[pve-devel] [PATCH pve-network 7/7] zones: vxlan: add dhcp support

2023-12-19 Thread Alexandre Derumier
add gateway ip to vnet and force /32 for ipv4 to avoid arp problem, and disable forwarding by security Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Zones/VxlanPlugin.pm | 32 +++ .../zones/vxlan/dhcp/expected_sdn_interfaces | 19 +++ src/test/zones

[pve-devel] [PATCH pve-network 1/7] dhcp: add vrf support

2023-12-19 Thread Alexandre Derumier
launch dnsmasq in a vrf context with "ip vrf exec dnsmasq.." use "default" vrf if plugin don't return a specific vrf Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Dhcp.pm | 3 ++- src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 3 ++- src

[pve-devel] [PATCH pve-network 5/7] zones: vlan: add dhcp support

2023-12-19 Thread Alexandre Derumier
add gateway ip to vnet and force /32 for ipv4 to avoid arp problem, and disable forwarding by security Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Zones/VlanPlugin.pm | 33 +++ .../zones/vlan/dhcp/expected_sdn_interfaces | 27 +++ src/test/zones

[pve-devel] [PATCH pve-network 0/7] add dhcp support for all zones

2023-12-19 Thread Alexandre Derumier
gateway should be optionnal (for user have 2 nic, 1 routable + 1 flat, we don't want to send 2 gateway). Use dnsmasq server ip field (like ipv6 layer 2 plugin ?) + empty gateway field don't announce ra for theses subnets (not sure how to handle this in dnsmasq range) Alexandre D

[pve-devel] [PATCH pve-network 0/3] add dhcp support for evpn

2023-12-18 Thread Alexandre Derumier
it;a=commit;h=a889c554a7df71ff93a8299ef96037fbe05f2f55 I have tested it, just applying this patch on current debian source is enough to get is working. Alexandre Derumier (3): dhcp: add vrf support dnsmasq service: run service in vrf zones: evpn: add dhcp support src/PVE/Network/SDN/Dhcp.pm | 3

[pve-devel] [PATCH pve-network 2/3] dnsmasq service: run service in vrf

2023-12-18 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/services/01-dnsmasq-vrf.conf | 4 src/services/Makefile| 1 + 2 files changed, 5 insertions(+) create mode 100644 src/services/01-dnsmasq-vrf.conf diff --git a/src/services/01-dnsmasq-vrf.conf b/src/services/01-dnsmasq-vrf.conf new

[pve-devel] [PATCH pve-network 1/3] dhcp: add vrf support

2023-12-18 Thread Alexandre Derumier
launch dnsmasq in a vrf context with "ip vrf exec dnsmasq.." use "default" vrf if plugin don't return a specific vrf Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Dhcp.pm | 3 ++- src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 3 ++- src

[pve-devel] [PATCH pve-network 3/3] zones: evpn: add dhcp support

2023-12-18 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Zones/EvpnPlugin.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/src/PVE/Network/SDN/Zones/EvpnPlugin.pm b/src/PVE/Network/SDN/Zones/EvpnPlugin.pm index 561d127..6c20b68 100644 --- a/src/PVE/Network/SDN/Zones/EvpnPlugin.pm +++ b

[pve-devel] [PATCH qemu-server] add qemu 8.1 cpu models

2023-12-11 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- PVE/QemuServer/CPUConfig.pm | 7 +++ 1 file changed, 7 insertions(+) diff --git a/PVE/QemuServer/CPUConfig.pm b/PVE/QemuServer/CPUConfig.pm index 750d3b6..ca2946b 100644 --- a/PVE/QemuServer/CPUConfig.pm +++ b/PVE/QemuServer/CPUConfig.pm @@ -109,6

[pve-devel] [PATCH qemu-server 0/1] increase qemu max openfiles limit

2023-12-10 Thread Alexandre Derumier
ofile 524289 But maybe users could already have tuned it for containers, so I think it's better to only change limit for qemu process. Alexandre Derumier (1): fix #4507 : increase qemu max openfiles limit PVE/QemuServer.pm | 6 ++ 1 file changed, 6 insertions(+)

[pve-devel] [PATCH qemu-server 1/1] fix #4507 : increase qemu max openfiles limit

2023-12-10 Thread Alexandre Derumier
--- PVE/QemuServer.pm | 6 ++ 1 file changed, 6 insertions(+) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 2063e66..eba26f3 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -5991,6 +5991,12 @@ sub vm_start_nolock { eval { PVE::QemuServer::PCI::reserve_pci_usage($pci_

[pve-devel] [PATCH pve-network 2/4] controllers: evpn: bugfix: use prefix-list in route-map instead evpn match

2023-12-03 Thread Alexandre Derumier
iple-exit-nodes.137362/ Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 26 ++- .../evpn/exitnode/expected_controller_config | 13 +++--- .../expected_controller_config| 13 +++--- .../expected

[pve-devel] [PATCH pve-network 0/4] evpn controller fix && cleanup

2023-12-03 Thread Alexandre Derumier
This patch serie is fixing 1 critical bug with multiple exit-nodes and other minor ipv6 bug with prefix-list && null routes. Also cleaning the re-ordering of some values in frr.conf to match the output of frr running config. Alexandre Derumier (4): controllers: evpn: add ipv6 pre

[pve-devel] [PATCH pve-network 3/4] controllers: evpn: frr config cleanup

2023-12-03 Thread Alexandre Derumier
Some values have been reordered in last version - bump version to 8.5.2 - move no bgp graceful-restart notification - move neighbor VTEP activate Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 6 +++--- .../zones/evpn/advertise_subnets

[pve-devel] [PATCH pve-network 4/4] controllers: evpn: fix null routes order && ipv6

2023-12-03 Thread Alexandre Derumier
- don't duplicate ip - ipv6 use "ipv6 route" - order correctly Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 16 - .../expected_controller_config| 7 .../exitnodenullroute/expected_sdn_interfaces | 8 +

[pve-devel] [PATCH pve-network 1/4] controllers: evpn: add ipv6 prefix-list support

2023-12-03 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 4 1 file changed, 4 insertions(+) diff --git a/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm b/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm index f320139..e536226 100644 --- a/src/PVE/Network/SDN

[pve-devel] [PATCH pve-network] fix dhcpv6 router advertisement

2023-11-21 Thread Alexandre Derumier
- don't listen to ip address, but use interface= instead - generate 1 config file by vnet instead 1 by subnet - enable-ra is global to server, enable it in default conf Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Dhcp.pm | 33 +- src/PVE/Networ

[pve-devel] [PATCH ifupdown2 1/1] Fix vxlan addon trying to remove fbd entries on reload with evpn

2023-11-20 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- debian/patches/series | 1 + ...-compare-between-remote-ips-and-old_.patch | 33 +++ 2 files changed, 34 insertions(+) create mode 100644 debian/patches/upstream/0001-addons-vxlan-fix-compare-between-remote-ips-and

[pve-devel] [PATCH ifupdown2 0/1] evpn vxlan reload bugfix

2023-11-20 Thread Alexandre Derumier
Hi, This patch is fixing a regression in ifupdown2 with evpn vxlan, where on reload, ifupdown2 is now trying to delete mac entries from bridges fdb, then it's breaking vm access on reload. Could be great to have it for pve 8.1, because it's really impact production Alexandre Derumier

[pve-devel] [PATCH pve-network 6/7] dnsmasq: fix ipv6 support

2023-11-18 Thread Alexandre Derumier
ether file should have 1 line by mac address with ip4+ip6 ip6 address should be in braced [ip6] for now: don't update ip6 through bus as it seem to be incorrect Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 64 + 1 file change

[pve-devel] [PATCH pve-network 2/7] api2: ipam : remove add|del_mapping in mac/ip management

2023-11-18 Thread Alexandre Derumier
only register/del ip in ipam here. The dhcp mapping is done a vm start. Signed-off-by: Alexandre Derumier --- src/PVE/API2/Network/SDN/Ipam.pm | 7 --- 1 file changed, 7 deletions(-) diff --git a/src/PVE/API2/Network/SDN/Ipam.pm b/src/PVE/API2/Network/SDN/Ipam.pm index e71ca7d..722baa4

[pve-devel] [PATCH pve-network 5/7] dnsmasq: enable dbus && purge old ip lease on reservation

2023-11-18 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 13 - 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm b/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm index 652b146..b469272 100644 --- a/src/PVE/Network/SDN/Dhcp

[pve-devel] [PATCH pve-network 3/7] dhcp : remove del_ip_mapping

2023-11-18 Thread Alexandre Derumier
The cleanup is done in add_ip_mapping Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 34 - src/PVE/Network/SDN/Dhcp/Plugin.pm | 5 - 2 files changed, 39 deletions(-) diff --git a/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm b/src/PVE

[pve-devel] [PATCH pve-network 0/7] dhcp v4

2023-11-18 Thread Alexandre Derumier
rks fine for me, but I can't get router avertisement working. I don't see any RA packet sent by dnsmasq. (works fine with radvd daemon for example). Alexandre Derumier (7): fix subnet tests api2: ipam : remove add|del_mapping in mac/ip management dhcp : remove del_ip_mapping

[pve-devel] [PATCH pve-network 4/7] dnsmasq: configure static range for each subnet

2023-11-18 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 13 ++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm b/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm index 763ad09..652b146 100644 --- a/src/PVE/Network/SDN/Dhcp/Dnsmas

[pve-devel] [PATCH pve-network 7/7] dhcp : dnsmasq: generate dbus policy

2023-11-18 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 26 ++ 1 file changed, 26 insertions(+) diff --git a/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm b/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm index 0dd6436..7b54532 100644 --- a/src/PVE/Network/SDN/Dhcp

[pve-devel] [PATCH pve-network 1/7] fix subnet tests

2023-11-18 Thread Alexandre Derumier
- add vmid in in ipam.db - remove ip value in ipam.db (is already the key) Signed-off-by: Alexandre Derumier --- src/test/run_test_subnets.pl | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/test/run_test_subnets.pl b/src/test/run_test_subnets.pl

[pve-devel] [PATCH pve-network 0/2] dnsmasq: fix dhcp leases

2023-11-17 Thread Alexandre Derumier
g.dtd";> Alexandre Derumier (2): dnsmasq: configure static range for each subnet dnsmasq: enable dbus && purge old ip lease on reservation src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 26 ++---

[pve-devel] [PATCH pve-network 1/2] dnsmasq: configure static range for each subnet

2023-11-17 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 13 ++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm b/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm index 46172c5..2db7f4f 100644 --- a/src/PVE/Network/SDN/Dhcp/Dnsmas

[pve-devel] [PATCH pve-network 2/2] dnsmasq: enable dbus && purge old ip lease on reservation

2023-11-17 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 13 - 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm b/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm index 2db7f4f..f4225d0 100644 --- a/src/PVE/Network/SDN/Dhcp

[pve-devel] [PATCH dnsmasq 0/1] purge previous ip/mac lease of dhcp reply

2023-11-15 Thread Alexandre Derumier
:ed:c8:36 Nov 15 22:46:02 formationkvm3 dnsmasq-dhcp[846333]: DHCPACK(vnetpve) 192.168.2.10 12:45:a3:ed:c8:36 testovn1 Alexandre Derumier (1): purge old ip-mac lease on dhcpreply src/rfc2131.c | 15 +-- 1 file changed, 9 insertions(+), 6 deletions(-) -- 2.39.2

[pve-devel] [PATCH dnsmasq 1/1] purge old ip-mac lease on dhcpreply

2023-11-15 Thread Alexandre Derumier
--- src/rfc2131.c | 15 +-- 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/rfc2131.c b/src/rfc2131.c index 17e97b5..2a4ce76 100644 --- a/src/rfc2131.c +++ b/src/rfc2131.c @@ -1095,7 +1095,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int

[pve-devel] [PATCH pve-network] dnsmasq: configure static range for each subnet

2023-11-15 Thread Alexandre Derumier
Signed-off-by: Alexandre Derumier --- src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 13 ++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm b/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm index 46172c5..2db7f4f 100644 --- a/src/PVE/Network/SDN/Dhcp/Dnsmas

  1   2   3   4   5   6   7   8   9   10   >