u32 nport_did:24;
 } __attribute__((packed));
 
-#define ZFCP_PORT_ADDRESS   0x0
-#define ZFCP_AREA_ADDRESS   0x1
-#define ZFCP_DOMAIN_ADDRESS 0x2
-#define ZFCP_FABRIC_ADDRESS 0x3
-
-#define ZFCP_PORTS_RANGE_PORT   0xFFFFFF
-#define ZFCP_PORTS_RANGE_AREA   0xFFFF00
-#define ZFCP_PORTS_RANGE_DOMAIN 0xFF0000
-#define ZFCP_PORTS_RANGE_FABRIC 0x000000
-
-#define ZFCP_NO_PORTS_PER_AREA    0x100
-#define ZFCP_NO_PORTS_PER_DOMAIN  0x10000
-#define ZFCP_NO_PORTS_PER_FABRIC  0x1000000
-
 /* see fc-ph */
 struct fcp_logo {
         u32 command;
 
 
 #include "zfcp_ext.h"
 
+enum rscn_address_format {
+       RSCN_PORT_ADDRESS       = 0x0,
+       RSCN_AREA_ADDRESS       = 0x1,
+       RSCN_DOMAIN_ADDRESS     = 0x2,
+       RSCN_FABRIC_ADDRESS     = 0x3,
+};
+
+static u32 rscn_range_mask[] = {
+       [RSCN_PORT_ADDRESS]             = 0xFFFFFF,
+       [RSCN_AREA_ADDRESS]             = 0xFFFF00,
+       [RSCN_DOMAIN_ADDRESS]           = 0xFF0000,
+       [RSCN_FABRIC_ADDRESS]           = 0x000000,
+};
+
 struct ct_iu_gpn_ft_req {
        struct ct_hdr header;
        u8 flags;
        for (i = 1; i < no_entries; i++) {
                /* skip head and start with 1st element */
                fcp_rscn_element++;
-               switch (fcp_rscn_element->addr_format) {
-               case ZFCP_PORT_ADDRESS:
-                       range_mask = ZFCP_PORTS_RANGE_PORT;
-                       break;
-               case ZFCP_AREA_ADDRESS:
-                       range_mask = ZFCP_PORTS_RANGE_AREA;
-                       break;
-               case ZFCP_DOMAIN_ADDRESS:
-                       range_mask = ZFCP_PORTS_RANGE_DOMAIN;
-                       break;
-               case ZFCP_FABRIC_ADDRESS:
-                       range_mask = ZFCP_PORTS_RANGE_FABRIC;
-                       break;
-               default:
-                       continue;
-               }
+               range_mask = rscn_range_mask[fcp_rscn_element->addr_format];
                _zfcp_fc_incoming_rscn(fsf_req, range_mask, fcp_rscn_element);
        }
        schedule_work(&fsf_req->adapter->scan_work);