diff --git a/openstackclient/network/v2/floating_ip.py b/openstackclient/network/v2/floating_ip.py
index 4525913f52..f3e3e5c44c 100644
--- a/openstackclient/network/v2/floating_ip.py
+++ b/openstackclient/network/v2/floating_ip.py
@@ -412,6 +412,11 @@ class SetFloatingIP(command.Command):
             help=_("Fixed IP of the port "
                    "(required only if port has multiple IPs)")
         )
+        parser.add_argument(
+            '--description',
+            metavar='<description>',
+            help=_('Set floating IP description')
+        )
         qos_policy_group = parser.add_mutually_exclusive_group()
         qos_policy_group.add_argument(
             '--qos-policy',
@@ -443,6 +448,9 @@ class SetFloatingIP(command.Command):
         if parsed_args.fixed_ip_address:
             attrs['fixed_ip_address'] = parsed_args.fixed_ip_address
 
+        if parsed_args.description:
+            attrs['description'] = parsed_args.description
+
         if parsed_args.qos_policy:
             attrs['qos_policy_id'] = client.find_qos_policy(
                 parsed_args.qos_policy, ignore_missing=False).id
diff --git a/openstackclient/tests/unit/network/v2/test_floating_ip_network.py b/openstackclient/tests/unit/network/v2/test_floating_ip_network.py
index a98051e769..dbcd5c9782 100644
--- a/openstackclient/tests/unit/network/v2/test_floating_ip_network.py
+++ b/openstackclient/tests/unit/network/v2/test_floating_ip_network.py
@@ -776,6 +776,32 @@ class TestSetFloatingIP(TestFloatingIPNetwork):
         self.network.update_ip.assert_called_once_with(
             self.floating_ip, **attrs)
 
+    def test_description_option(self):
+        arglist = [
+            self.floating_ip.id,
+            '--port', self.floating_ip.port_id,
+            '--description', self.floating_ip.description,
+        ]
+        verifylist = [
+            ('floating_ip', self.floating_ip.id),
+            ('port', self.floating_ip.port_id),
+            ('description', self.floating_ip.description),
+        ]
+        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+        self.cmd.take_action(parsed_args)
+
+        attrs = {
+            'port_id': self.floating_ip.port_id,
+            'description': self.floating_ip.description,
+        }
+        self.network.find_ip.assert_called_once_with(
+            self.floating_ip.id,
+            ignore_missing=False,
+        )
+        self.network.update_ip.assert_called_once_with(
+            self.floating_ip, **attrs)
+
     def test_qos_policy_option(self):
         qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy()
         self.network.find_qos_policy = mock.Mock(return_value=qos_policy)