diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d7_menu.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d7_menu.yml
new file mode 100644
index 0000000..a6746b0
--- /dev/null
+++ b/core/modules/migrate_drupal/config/install/migrate.migration.d7_menu.yml
@@ -0,0 +1,12 @@
+id: d7_menu
+label: Drupal 7 menus
+migration_groups:
+  - Drupal 7
+source:
+  plugin: d6_menu
+process:
+  id: menu_name
+  label: title
+  description: description
+destination:
+  plugin: entity:menu
diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d7_menu_links.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d7_menu_links.yml
new file mode 100644
index 0000000..e07ee18
--- /dev/null
+++ b/core/modules/migrate_drupal/config/install/migrate.migration.d7_menu_links.yml
@@ -0,0 +1,50 @@
+id: d7_menu_links
+label: Drupal 7 menu links
+migration_groups:
+  - Drupal 7
+source:
+  plugin: d6_menu_link
+  constants:
+    bundle: menu_link_content
+process:
+  id: mlid
+  bundle: 'constants/bundle'
+  title: link_title
+  description:
+    plugin: extract
+    source:
+      - options
+    index:
+      - 0
+      - attributes
+      - title
+  menu_name:
+    plugin: migration
+    migration: d7_menu
+    source: menu_name
+  route:
+    plugin: route
+    source:
+      - link_path
+      - options
+  route_name: @route/route_name
+  route_parameters: @route/route_parameters
+  url: @route/url
+  options: @route/options
+  external: external
+  weight: weight
+  expanded: expanded
+  enabled: enabled
+  parent:
+    -
+      plugin: skip_process_on_empty
+      source: plid
+    -
+      plugin: migration
+      migration: d7_menu_links
+  changed: updated
+destination:
+  plugin: entity:menu_link_content
+migration_dependencies:
+  required:
+    - d7_menu
