#xCAT generated dhcp configuration

option conf-file code 209 = text;
option space isan;
option isan-encap-opts code 43 = encapsulate isan;
option isan.iqn code 203 = string;
option isan.root-path code 201 = string;
option space gpxe;
option gpxe-encap-opts code 175 = encapsulate gpxe;
option gpxe.bus-id code 177 = string;
option user-class-identifier code 77 = string;
option gpxe.no-pxedhcp code 176 = unsigned integer 8;
option tcode code 101 = text;
option iscsi-initiator-iqn code 203 = string;
ddns-update-style interim;
ignore client-updates;
option client-architecture code 93 = unsigned integer 16;
option tcode "America/Guayaquil";
option gpxe.no-pxedhcp 1;
option www-server code 114 = string;
option cumulus-provision-url code 239 = text;

omapi-port 7911;
key xcat_key {
  algorithm hmac-md5;
  secret "SnFGUnE4QnVUSE9CQXEyM2tHV25VamxBZEE4YlVHUkU=";
};
omapi-key xcat_key;
class "pxe" {
   match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
   ddns-updates off;
    max-lease-time 600;
}
shared-network ib0 {
  subnet 192.168.0.0 netmask 255.255.255.0 {
    authoritative;
    max-lease-time 43200;
    min-lease-time 43200;
    default-lease-time 43200;
    option routers  192.168.0.7;
    next-server  192.168.0.7;
    option log-servers 192.168.0.7;
    option ntp-servers 192.168.0.7;
    option domain-name "qnd.mm";
    option domain-name-servers  10.50.1.7;
    option interface-mtu 2044;
    option domain-search  "qnd.mm";
    option cumulus-provision-url "http://192.168.0.7:80/install/postscripts/cumulusztp";
    zone qnd.mm. {
       primary 10.50.1.7; key xcat_key;
    }
    zone 0.168.192.IN-ADDR.ARPA. {
       primary 10.50.1.7; key xcat_key;
    }
    if option user-class-identifier = "xNBA" and option client-architecture = 00:00 { #x86, xCAT Network Boot Agent
        always-broadcast on;
        filename = "http://192.168.0.7:80/tftpboot/xcat/xnba/nets/192.168.0.0_24";
    } else if option user-class-identifier = "xNBA" and option client-architecture = 00:09 { #x86, xCAT Network Boot Agent
        filename = "http://192.168.0.7:80/tftpboot/xcat/xnba/nets/192.168.0.0_24.uefi";
    } else if option client-architecture = 00:00  { #x86
        filename "xcat/xnba.kpxe";
    } else if option vendor-class-identifier = "Etherboot-5.4"  { #x86
        filename "xcat/xnba.kpxe";
    } else if option client-architecture = 00:07 { #x86_64 uefi
         filename "xcat/xnba.efi";
    } else if option client-architecture = 00:09 { #x86_64 uefi alternative id
         filename "xcat/xnba.efi";
    } else if option client-architecture = 00:02 { #ia64
         filename "elilo.efi";
    } else if option client-architecture = 00:0e { #OPAL-v3
         option conf-file = "http://192.168.0.7:80/tftpboot/pxelinux.cfg/p/192.168.0.0_24";
    } else if substring (option vendor-class-identifier,0,11) = "onie_vendor" { #for onie on cumulus switch
        option www-server = "http://192.168.0.7:80/install/onie/onie-installer";
    } else if substring(filename,0,1) = null { #otherwise, provide yaboot if the client isn't specific
         filename "/yaboot";
    }
    range dynamic-bootp 192.168.0.12 192.168.0.253;
  } # 192.168.0.0/255.255.255.0 subnet_end
} # ib0 nic_end
shared-network eno6 {
  subnet 172.31.168.0 netmask 255.255.255.0 {
    authoritative;
    max-lease-time 43200;
    min-lease-time 43200;
    default-lease-time 43200;
    option routers  172.31.168.7;
    next-server  172.31.168.7;
    option log-servers 172.31.168.7;
    option ntp-servers 172.31.168.7;
    option domain-name "qnd.mm";
    option domain-name-servers  10.50.1.7;
    option interface-mtu 1500;
    option domain-search  "qnd.mm";
    option cumulus-provision-url "http://172.31.168.7:80/install/postscripts/cumulusztp";
    zone qnd.mm. {
       primary 10.50.1.7; key xcat_key;
    }
    zone 168.31.172.IN-ADDR.ARPA. {
       primary 10.50.1.7; key xcat_key;
    }
    if option user-class-identifier = "xNBA" and option client-architecture = 00:00 { #x86, xCAT Network Boot Agent
        always-broadcast on;
        filename = "http://172.31.168.7:80/tftpboot/xcat/xnba/nets/172.31.168.0_24";
    } else if option user-class-identifier = "xNBA" and option client-architecture = 00:09 { #x86, xCAT Network Boot Agent
        filename = "http://172.31.168.7:80/tftpboot/xcat/xnba/nets/172.31.168.0_24.uefi";
    } else if option client-architecture = 00:00  { #x86
        filename "xcat/xnba.kpxe";
    } else if option vendor-class-identifier = "Etherboot-5.4"  { #x86
        filename "xcat/xnba.kpxe";
    } else if option client-architecture = 00:07 { #x86_64 uefi
         filename "xcat/xnba.efi";
    } else if option client-architecture = 00:09 { #x86_64 uefi alternative id
         filename "xcat/xnba.efi";
    } else if option client-architecture = 00:02 { #ia64
         filename "elilo.efi";
    } else if option client-architecture = 00:0e { #OPAL-v3
         option conf-file = "http://172.31.168.7:80/tftpboot/pxelinux.cfg/p/172.31.168.0_24";
    } else if substring (option vendor-class-identifier,0,11) = "onie_vendor" { #for onie on cumulus switch
        option www-server = "http://172.31.168.7:80/install/onie/onie-installer";
    } else if substring(filename,0,1) = null { #otherwise, provide yaboot if the client isn't specific
         filename "/yaboot";
    }
  } # 172.31.168.0/255.255.255.0 subnet_end
} # eno6 nic_end
shared-network eno5 {
  subnet 10.50.1.0 netmask 255.255.255.0 {
    authoritative;
    max-lease-time 43200;
    min-lease-time 43200;
    default-lease-time 43200;
    option routers  10.50.1.7;
    next-server  10.50.1.7;
    option log-servers 10.50.1.7;
    option ntp-servers 10.50.1.7;
    option domain-name "qnd.mm";
    option domain-name-servers  10.50.1.7;
    option interface-mtu 1500;
    option domain-search  "qnd.mm";
    option cumulus-provision-url "http://10.50.1.7:80/install/postscripts/cumulusztp";
    zone qnd.mm. {
       primary 10.50.1.7; key xcat_key;
    }
    zone 1.50.10.IN-ADDR.ARPA. {
       primary 10.50.1.7; key xcat_key;
    }
    if option user-class-identifier = "xNBA" and option client-architecture = 00:00 { #x86, xCAT Network Boot Agent
        always-broadcast on;
        filename = "http://10.50.1.7:80/tftpboot/xcat/xnba/nets/10.50.1.0_24";
    } else if option user-class-identifier = "xNBA" and option client-architecture = 00:09 { #x86, xCAT Network Boot Agent
        filename = "http://10.50.1.7:80/tftpboot/xcat/xnba/nets/10.50.1.0_24.uefi";
    } else if option client-architecture = 00:00  { #x86
        filename "xcat/xnba.kpxe";
    } else if option vendor-class-identifier = "Etherboot-5.4"  { #x86
        filename "xcat/xnba.kpxe";
    } else if option client-architecture = 00:07 { #x86_64 uefi
         filename "xcat/xnba.efi";
    } else if option client-architecture = 00:09 { #x86_64 uefi alternative id
         filename "xcat/xnba.efi";
    } else if option client-architecture = 00:02 { #ia64
         filename "elilo.efi";
    } else if option client-architecture = 00:0e { #OPAL-v3
         option conf-file = "http://10.50.1.7:80/tftpboot/pxelinux.cfg/p/10.50.1.0_24";
    } else if substring (option vendor-class-identifier,0,11) = "onie_vendor" { #for onie on cumulus switch
        option www-server = "http://10.50.1.7:80/install/onie/onie-installer";
    } else if substring(filename,0,1) = null { #otherwise, provide yaboot if the client isn't specific
         filename "/yaboot";
    }
    range dynamic-bootp 10.50.1.12 10.50.1.253;
  } # 10.50.1.0/255.255.255.0 subnet_end
} # eno5 nic_end
shared-network eno5.1 {
  subnet 10.0.0.0 netmask 255.255.255.0 {
    authoritative;
    max-lease-time 43200;
    min-lease-time 43200;
    default-lease-time 43200;
    next-server  10.0.0.86;
    option log-servers 10.0.0.86;
    option ntp-servers 10.0.0.86;
    option domain-name "qnd.mm";
    option domain-name-servers  10.50.1.7;
    option domain-search  "qnd.mm";
    option cumulus-provision-url "http://10.0.0.86:80/install/postscripts/cumulusztp";
    zone qnd.mm. {
       primary 10.50.1.7; key xcat_key;
    }
    zone 0.0.10.IN-ADDR.ARPA. {
       primary 10.50.1.7; key xcat_key;
    }
    if option user-class-identifier = "xNBA" and option client-architecture = 00:00 { #x86, xCAT Network Boot Agent
        always-broadcast on;
        filename = "http://10.0.0.86:80/tftpboot/xcat/xnba/nets/10.0.0.0_24";
    } else if option user-class-identifier = "xNBA" and option client-architecture = 00:09 { #x86, xCAT Network Boot Agent
        filename = "http://10.0.0.86:80/tftpboot/xcat/xnba/nets/10.0.0.0_24.uefi";
    } else if option client-architecture = 00:00  { #x86
        filename "xcat/xnba.kpxe";
    } else if option vendor-class-identifier = "Etherboot-5.4"  { #x86
        filename "xcat/xnba.kpxe";
    } else if option client-architecture = 00:07 { #x86_64 uefi
         filename "xcat/xnba.efi";
    } else if option client-architecture = 00:09 { #x86_64 uefi alternative id
         filename "xcat/xnba.efi";
    } else if option client-architecture = 00:02 { #ia64
         filename "elilo.efi";
    } else if option client-architecture = 00:0e { #OPAL-v3
         option conf-file = "http://10.0.0.86:80/tftpboot/pxelinux.cfg/p/10.0.0.0_24";
    } else if substring (option vendor-class-identifier,0,11) = "onie_vendor" { #for onie on cumulus switch
        option www-server = "http://10.0.0.86:80/install/onie/onie-installer";
    } else if substring(filename,0,1) = null { #otherwise, provide yaboot if the client isn't specific
         filename "/yaboot";
    }
  } # 10.0.0.0/255.255.255.0 subnet_end
} # eno5.1 nic_end
#definition for host xcatmntest aka host xcatmntest can be found in the dhcpd.leases file (typically /var/lib/dhcpd/dhcpd.leases)
