# See the License for the specific language governing permissions and
 # limitations under the License.
 
+import ipaddress
 import logging
 
 import IxNetwork
         :param field: (str) field name, e.g.: scrIp, dstIp
         :param ip_address: (str) IP address
         :param seed: (int) seed length
-        :param mask: (str) IP address mask
+        :param mask: (int) IP address mask length
         :param count: (int) number of random IPs to generate
         """
         field_descriptor = self._get_field_in_stack_item(ip_descriptor,
                                                          field)
+        random_mask = str(ipaddress.IPv4Address(
+            2**(ipaddress.IPV4LENGTH - mask) - 1).compressed)
         self.ixnet.setMultiAttribute(field_descriptor,
                                      '-seed', seed,
                                      '-fixedBits', ip_address,
-                                     '-randomMask', mask,
+                                     '-randomMask', random_mask,
                                      '-valueType', 'random',
                                      '-countValue', count)
         self.ixnet.commit()
 
         with mock.patch.object(ixnet_gen, '_get_field_in_stack_item',
                                return_value='field_desc'):
             ixnet_gen._update_ipv4_address(mock.ANY, mock.ANY, '192.168.1.1',
-                                           100, '255.255.255.0', 25)
+                                           100, 26, 25)
         ixnet_gen.ixnet.setMultiAttribute.assert_called_once_with(
             'field_desc', '-seed', 100, '-fixedBits', '192.168.1.1',
-            '-randomMask', '255.255.255.0', '-valueType', 'random',
+            '-randomMask', '0.0.0.63', '-valueType', 'random',
             '-countValue', 25)
 
     def test_update_ip_packet(self):