diff --git a/doc/source/FAQ.rst b/doc/source/FAQ.rst
index ebb6fe3c2..2a67bba8c 100644
--- a/doc/source/FAQ.rst
+++ b/doc/source/FAQ.rst
@@ -6,7 +6,8 @@ I don't need notifications on the message bus. How do I disable them?
 =====================================================================
 
 Notification messages can be disabled using the ``noop`` notify
-driver. Set ``notification_driver = noop`` in your configuration file.
+driver. Set ``driver = noop`` in your configuration file under the
+[oslo_messaging_notifications] section.
 
 Why does the notification publisher create queues, too? Shouldn't the subscriber do that?
 =========================================================================================
@@ -26,9 +27,9 @@ notification "level". The default topic is ``notifications``, so an
 info-level notification is published to the topic
 ``notifications.info``. A subscriber queue of the same name is created
 automatically for each of these topics. To change the queue names,
-change the notification topic using the ``notification_topics``
-configuration option. The option accepts a list of values, so it is
-possible to publish to multiple topics.
+change the notification topic using the ``topics``
+configuration option in ``[oslo_messaging_notifications]``. The option
+accepts a list of values, so it is possible to publish to multiple topics.
 
 What are the other choices of notification drivers available?
 =============================================================
diff --git a/oslo_messaging/conffixture.py b/oslo_messaging/conffixture.py
index 35b6e2a27..2f53d3f9e 100644
--- a/oslo_messaging/conffixture.py
+++ b/oslo_messaging/conffixture.py
@@ -66,7 +66,9 @@ class ConfFixture(fixtures.Fixture):
         _import_opts(self.conf, 'oslo_messaging.rpc.client', '_client_opts')
         _import_opts(self.conf, 'oslo_messaging.transport', '_transport_opts')
         _import_opts(self.conf,
-                     'oslo_messaging.notify.notifier', '_notifier_opts')
+                     'oslo_messaging.notify.notifier',
+                     '_notifier_opts',
+                     'oslo_messaging_notifications')
 
     def setUp(self):
         super(ConfFixture, self).setUp()
diff --git a/oslo_messaging/notify/_impl_routing.py b/oslo_messaging/notify/_impl_routing.py
index 6c5fd18d2..3e89f8770 100644
--- a/oslo_messaging/notify/_impl_routing.py
+++ b/oslo_messaging/notify/_impl_routing.py
@@ -27,11 +27,13 @@ from oslo_messaging.notify import notifier
 
 LOG = logging.getLogger(__name__)
 
-router_config = cfg.StrOpt('routing_notifier_config', default='',
+router_config = cfg.StrOpt('routing_config', default='',
+                           deprecated_group='DEFAULT',
+                           deprecated_name='routing_notifier_config',
                            help='RoutingNotifier configuration file location.')
 
 CONF = cfg.CONF
-CONF.register_opt(router_config)
+CONF.register_opt(router_config, group='oslo_messaging_notifications')
 
 
 class RoutingDriver(notifier.Driver):
@@ -56,7 +58,7 @@ class RoutingDriver(notifier.Driver):
         """One-time load of notifier config file."""
         self.routing_groups = {}
         self.used_drivers = set()
-        filename = CONF.routing_notifier_config
+        filename = CONF.oslo_messaging_notifications.routing_config
         if not filename:
             return
 
diff --git a/oslo_messaging/notify/log_handler.py b/oslo_messaging/notify/log_handler.py
index 7fefb9b29..8dc8454b5 100644
--- a/oslo_messaging/notify/log_handler.py
+++ b/oslo_messaging/notify/log_handler.py
@@ -27,8 +27,9 @@ class LoggingErrorNotificationHandler(logging.Handler):
             publisher_id='error.publisher')
 
     def emit(self, record):
+        conf = self._transport.conf
         # NOTE(bnemec): Notifier registers this opt with the transport.
-        if ('log' in self._transport.conf.notification_driver):
+        if ('log' in conf.oslo_messaging_notifications.driver):
             # NOTE(lbragstad): If we detect that log is one of the
             # notification drivers, then return. This protects from infinite
             # recursion where something bad happens, it gets logged, the log
diff --git a/oslo_messaging/notify/notifier.py b/oslo_messaging/notify/notifier.py
index dec25b16f..fb841644f 100644
--- a/oslo_messaging/notify/notifier.py
+++ b/oslo_messaging/notify/notifier.py
@@ -28,19 +28,27 @@ from oslo_messaging import serializer as msg_serializer
 from oslo_messaging import transport as msg_transport
 
 _notifier_opts = [
-    cfg.MultiStrOpt('notification_driver',
+    cfg.MultiStrOpt('driver',
                     default=[],
+                    deprecated_name='notification_driver',
+                    deprecated_group='DEFAULT',
                     help='The Drivers(s) to handle sending notifications. '
                          'Possible values are messaging, messagingv2, '
                          'routing, log, test, noop'),
-    cfg.StrOpt('notification_transport_url',
+    cfg.StrOpt('transport_url',
+               deprecated_name='notification_transport_url',
+               deprecated_group='DEFAULT',
                help='A URL representing the messaging driver to use for '
                     'notifications. If not set, we fall back to the same '
                     'configuration used for RPC.'),
-    cfg.ListOpt('notification_topics',
+    cfg.ListOpt('topics',
                 default=['notifications', ],
-                deprecated_name='topics',
-                deprecated_group='rpc_notifier2',
+                deprecated_opts=[
+                    cfg.DeprecatedOpt('topics',
+                                      group='rpc_notifier2'),
+                    cfg.DeprecatedOpt('notification_topics',
+                                      group='DEFAULT')
+                ],
                 help='AMQP topic used for OpenStack notifications.'),
 ]
 
@@ -83,8 +91,9 @@ class Driver(object):
 def get_notification_transport(conf, url=None,
                                allowed_remote_exmods=None, aliases=None):
     if url is None:
-        conf.register_opts(_notifier_opts)
-        url = conf.notification_transport_url
+        conf.register_opts(_notifier_opts,
+                           group='oslo_messaging_notifications')
+        url = conf.oslo_messaging_notifications.transport_url
     return msg_transport.get_transport(conf, url,
                                        allowed_remote_exmods, aliases)
 
@@ -111,9 +120,9 @@ class Notifier(object):
         notifier = messaging.Notifier(get_notification_transport(CONF),
                                       'compute')
 
-    and notifications are sent via drivers chosen with the notification_driver
-    config option and on the topics chosen with the notification_topics config
-    option.
+    and notifications are sent via drivers chosen with the driver
+    config option and on the topics chosen with the topics config
+    option in [oslo_messaging_notifications] section.
 
     Alternatively, a Notifier object can be instantiated with a specific
     driver or topic::
@@ -154,24 +163,26 @@ class Notifier(object):
                       N means N retries
         :type retry: int
         """
-        transport.conf.register_opts(_notifier_opts)
+        conf = transport.conf
+        conf.register_opts(_notifier_opts,
+                           group='oslo_messaging_notifications')
 
         self.transport = transport
         self.publisher_id = publisher_id
         self.retry = retry
 
-        self._driver_names = ([driver] if driver is not None
-                              else transport.conf.notification_driver)
+        self._driver_names = ([driver] if driver is not None else
+                              conf.oslo_messaging_notifications.driver)
 
-        self._topics = ([topic] if topic is not None
-                        else transport.conf.notification_topics)
+        self._topics = ([topic] if topic is not None else
+                        conf.oslo_messaging_notifications.topics)
         self._serializer = serializer or msg_serializer.NoOpSerializer()
 
         self._driver_mgr = named.NamedExtensionManager(
             'oslo.messaging.notify.drivers',
             names=self._driver_names,
             invoke_on_load=True,
-            invoke_args=[transport.conf],
+            invoke_args=[conf],
             invoke_kwds={
                 'topics': self._topics,
                 'transport': self.transport,
diff --git a/oslo_messaging/tests/functional/notify/test_logger.py b/oslo_messaging/tests/functional/notify/test_logger.py
index ad30e8850..a7f580bc3 100644
--- a/oslo_messaging/tests/functional/notify/test_logger.py
+++ b/oslo_messaging/tests/functional/notify/test_logger.py
@@ -51,8 +51,9 @@ class LoggingNotificationHandlerTestCase(utils.SkipIfNoTransportURL):
         # NOTE(gtt): Using different topic to make tests run in parallel
         topic = 'test_logging_%s_driver_%s' % (self.priority, self.driver)
 
-        self.conf.notification_driver = [self.driver]
-        self.conf.notification_topics = [topic]
+        self.config(driver=[self.driver],
+                    topics=[topic],
+                    group='oslo_messaging_notifications')
 
         listener = self.useFixture(
             utils.NotificationFixture(self.conf, self.url, [topic]))
diff --git a/oslo_messaging/tests/notify/test_log_handler.py b/oslo_messaging/tests/notify/test_log_handler.py
index dfc214aed..1851321dd 100644
--- a/oslo_messaging/tests/notify/test_log_handler.py
+++ b/oslo_messaging/tests/notify/test_log_handler.py
@@ -28,7 +28,8 @@ class PublishErrorsHandlerTestCase(test_utils.BaseTestCase):
 
     def test_emit_cfg_log_notifier_in_notifier_drivers(self):
         drivers = ['messaging', 'log']
-        self.config(notification_driver=drivers)
+        self.config(driver=drivers,
+                    group='oslo_messaging_notifications')
         self.stub_flg = True
 
         transport = test_notifier._FakeTransport(self.conf)
diff --git a/oslo_messaging/tests/notify/test_logger.py b/oslo_messaging/tests/notify/test_logger.py
index f0ea8e8b8..12d1cd100 100644
--- a/oslo_messaging/tests/notify/test_logger.py
+++ b/oslo_messaging/tests/notify/test_logger.py
@@ -49,7 +49,8 @@ class TestLogNotifier(test_utils.BaseTestCase):
     def setUp(self):
         super(TestLogNotifier, self).setUp()
         self.addCleanup(oslo_messaging.notify._impl_test.reset)
-        self.config(notification_driver=['test'])
+        self.config(driver=['test'],
+                    group='oslo_messaging_notifications')
         # NOTE(jamespage) disable thread information logging for testing
         # as this causes test failures when zmq tests monkey_patch via
         # eventlet
diff --git a/oslo_messaging/tests/notify/test_notifier.py b/oslo_messaging/tests/notify/test_notifier.py
index e55913d51..0b2da7fbb 100644
--- a/oslo_messaging/tests/notify/test_notifier.py
+++ b/oslo_messaging/tests/notify/test_notifier.py
@@ -156,8 +156,9 @@ class TestMessagingNotifier(test_utils.BaseTestCase):
         if self.v2:
             drivers.append('messagingv2')
 
-        self.config(notification_driver=drivers,
-                    notification_topics=self.topics)
+        self.config(driver=drivers,
+                    topics=self.topics,
+                    group='oslo_messaging_notifications')
 
         transport = _FakeTransport(self.conf)
 
@@ -269,7 +270,8 @@ class TestLogNotifier(test_utils.BaseTestCase):
 
     @mock.patch('oslo_utils.timeutils.utcnow')
     def test_notifier(self, mock_utcnow):
-        self.config(notification_driver=['log'])
+        self.config(driver=['log'],
+                    group='oslo_messaging_notifications')
 
         transport = _FakeTransport(self.conf)
 
@@ -338,7 +340,8 @@ class TestLogNotifier(test_utils.BaseTestCase):
 class TestRoutingNotifier(test_utils.BaseTestCase):
     def setUp(self):
         super(TestRoutingNotifier, self).setUp()
-        self.config(notification_driver=['routing'])
+        self.config(driver=['routing'],
+                    group='oslo_messaging_notifications')
 
         transport = _FakeTransport(self.conf)
         self.notifier = oslo_messaging.Notifier(transport)
@@ -360,13 +363,14 @@ class TestRoutingNotifier(test_utils.BaseTestCase):
         self.assertTrue(self.router._should_load_plugin(ext))
 
     def test_load_notifiers_no_config(self):
-        # default routing_notifier_config=""
+        # default routing_config=""
         self.router._load_notifiers()
         self.assertEqual({}, self.router.routing_groups)
         self.assertEqual(0, len(self.router.used_drivers))
 
     def test_load_notifiers_no_extensions(self):
-        self.config(routing_notifier_config="routing_notifier.yaml")
+        self.config(routing_config="routing_notifier.yaml",
+                    group='oslo_messaging_notifications')
         routing_config = r""
         config_file = mock.MagicMock()
         config_file.return_value = routing_config
@@ -382,7 +386,8 @@ class TestRoutingNotifier(test_utils.BaseTestCase):
         self.assertEqual({}, self.router.routing_groups)
 
     def test_load_notifiers_config(self):
-        self.config(routing_notifier_config="routing_notifier.yaml")
+        self.config(routing_config="routing_notifier.yaml",
+                    group='oslo_messaging_notifications')
         routing_config = r"""
 group_1:
    rpc : foo
@@ -519,7 +524,8 @@ group_1:
                                  sorted(pm.map.call_args[0][6]))
 
     def test_notify_filtered(self):
-        self.config(routing_notifier_config="routing_notifier.yaml")
+        self.config(routing_config="routing_notifier.yaml",
+                    group='oslo_messaging_notifications')
         routing_config = r"""
 group_1:
     rpc:
diff --git a/tools/simulator.py b/tools/simulator.py
index d3dda3eec..3c587d5a0 100755
--- a/tools/simulator.py
+++ b/tools/simulator.py
@@ -283,8 +283,8 @@ def main():
 
     # oslo.config defaults
     cfg.CONF.heartbeat_interval = 5
-    cfg.CONF.notification_topics = "notif"
-    cfg.CONF.notification_driver = "messaging"
+    cfg.CONF.oslo_messaging_notifications.topics = "notif"
+    cfg.CONF.oslo_messaging_notifications.driver = "messaging"
     cfg.CONF.prog = os.path.basename(__file__)
     cfg.CONF.project = 'oslo.messaging'