diff --git a/src/store/modules/Logs/DumpsStore.js b/src/store/modules/Logs/DumpsStore.js
index ac61d2d..746733a 100644
--- a/src/store/modules/Logs/DumpsStore.js
+++ b/src/store/modules/Logs/DumpsStore.js
@@ -10,7 +10,7 @@
     allDumps: (state) => state.allDumps,
   },
   mutations: {
-    setBmcDumps: (state, dumps) => {
+    setAllDumps: (state, dumps) => {
       state.allDumps = dumps.map((dump) => ({
         data: dump.AdditionalDataURI,
         dateTime: new Date(dump.Created),
@@ -22,10 +22,35 @@
     },
   },
   actions: {
-    async getBmcDumpEntries({ commit }) {
+    async getBmcDumpEntries() {
+      return api
+        .get('/redfish/v1/')
+        .then((response) => api.get(response.data.Managers['@odata.id']))
+        .then((response) => api.get(`${response.data['@odata.id']}/bmc`))
+        .then((response) => api.get(response.data.LogServices['@odata.id']))
+        .then((response) => api.get(`${response.data['@odata.id']}/Dump`))
+        .then((response) => api.get(response.data.Entries['@odata.id']))
+        .catch((error) => console.log(error));
+    },
+    async getSystemDumpEntries() {
+      return api
+        .get('/redfish/v1/')
+        .then((response) => api.get(response.data.Systems['@odata.id']))
+        .then((response) => api.get(`${response.data['@odata.id']}/system`))
+        .then((response) => api.get(response.data.LogServices['@odata.id']))
+        .then((response) => api.get(`${response.data['@odata.id']}/Dump`))
+        .then((response) => api.get(response.data.Entries['@odata.id']))
+        .catch((error) => console.log(error));
+    },
+    async getAllDumps({ commit, dispatch }) {
       return await api
-        .get('/redfish/v1/Managers/bmc/LogServices/Dump/Entries')
-        .then(({ data = {} }) => commit('setBmcDumps', data.Members || []))
+        .all([dispatch('getBmcDumpEntries'), dispatch('getSystemDumpEntries')])
+        .then((response) => {
+          const bmcDumpEntries = response[0].data?.Members || [];
+          const systemDumpEntries = response[1].data?.Members || [];
+          const allDumps = [...bmcDumpEntries, ...systemDumpEntries];
+          commit('setAllDumps', allDumps);
+        })
         .catch((error) => console.log(error));
     },
     async createBmcDump() {
@@ -66,7 +91,7 @@
       return await api
         .all(promises)
         .then((response) => {
-          dispatch('getBmcDumpEntries');
+          dispatch('getAllDumps');
           return response;
         })
         .then(
@@ -95,13 +120,13 @@
         );
     },
     async deleteAllDumps({ commit, state }) {
-      const totalDumpCount = state.bmcDumps.length;
+      const totalDumpCount = state.allDumps.length;
       return await api
         .post(
           '/redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.ClearLog'
         )
         .then(() => {
-          commit('setBmcDumps', []);
+          commit('setAllDumps', []);
           return i18n.tc('pageDumps.toast.successDeleteDump', totalDumpCount);
         })
         .catch((error) => {
diff --git a/src/views/Logs/Dumps/Dumps.vue b/src/views/Logs/Dumps/Dumps.vue
index a6dc10f..179a503 100644
--- a/src/views/Logs/Dumps/Dumps.vue
+++ b/src/views/Logs/Dumps/Dumps.vue
@@ -20,8 +20,8 @@
               />
               <div class="ml-sm-4">
                 <table-cell-count
-                  :filtered-items-count="filteredItemCount"
-                  :total-number-of-cells="tableItems.length"
+                  :filtered-items-count="filteredRows"
+                  :total-number-of-cells="allDumps.length"
                 ></table-cell-count>
               </div>
             </b-col>
@@ -29,6 +29,14 @@
               <table-date-filter @change="onChangeDateTimeFilter" />
             </b-col>
           </b-row>
+          <b-row>
+            <b-col class="text-right">
+              <table-filter
+                :filters="tableFilters"
+                @filter-change="onFilterChange"
+              />
+            </b-col>
+          </b-row>
           <table-toolbar
             :selected-items-count="selectedRows.length"
             :actions="batchActions"
@@ -47,12 +55,12 @@
             responsive="md"
             sort-by="dateTime"
             :fields="fields"
-            :items="filteredTableItems"
+            :items="filteredDumps"
             :empty-text="$t('global.table.emptyMessage')"
             :empty-filtered-text="$t('global.table.emptySearchMessage')"
             :filter="searchFilter"
-            @filtered="onChangeSearchFilter"
-            @row-selected="onRowSelected($event, filteredTableItems.length)"
+            @filtered="onFiltered"
+            @row-selected="onRowSelected($event, filteredDumps.length)"
           >
             <!-- Checkbox column -->
             <template #head(checkbox)>
@@ -126,7 +134,7 @@
           first-number
           last-number
           :per-page="perPage"
-          :total-rows="getTotalRowCount(filteredItemCount)"
+          :total-rows="getTotalRowCount()"
           aria-controls="table-dump-entries"
         />
       </b-col>
@@ -137,7 +145,6 @@
 <script>
 import IconDelete from '@carbon/icons-vue/es/trash-can/20';
 import IconDownload from '@carbon/icons-vue/es/download/20';
-
 import DumpsForm from './DumpsForm';
 import PageSection from '@/components/Global/PageSection';
 import PageTitle from '@/components/Global/PageTitle';
@@ -146,7 +153,6 @@
 import TableDateFilter from '@/components/Global/TableDateFilter';
 import TableRowAction from '@/components/Global/TableRowAction';
 import TableToolbar from '@/components/Global/TableToolbar';
-
 import BVTableSelectableMixin, {
   selectedRows,
   tableHeaderCheckboxModel,
@@ -162,6 +168,7 @@
 import SearchFilterMixin, {
   searchFilter,
 } from '@/components/Mixins/SearchFilterMixin';
+import TableFilter from '@/components/Global/TableFilter';
 import TableFilterMixin from '@/components/Mixins/TableFilterMixin';
 
 export default {
@@ -176,6 +183,7 @@
     TableDateFilter,
     TableRowAction,
     TableToolbar,
+    TableFilter,
   },
   mixins: [
     BVTableSelectableMixin,
@@ -231,24 +239,39 @@
           label: this.$t('global.action.delete'),
         },
       ],
+      tableFilters: [
+        {
+          key: 'dumpType',
+          label: this.$t('pageDumps.table.dumpType'),
+          values: [
+            'BMC Dump Entry',
+            'Hostboot Dump Entry',
+            'Resource Dump Entry',
+            'System Dump Entry',
+          ],
+        },
+      ],
+      activeFilters: [],
       currentPage: currentPage,
       filterEndDate: null,
       filterStartDate: null,
       itemsPerPageOptions: itemsPerPageOptions,
       perPage: perPage,
       searchFilter,
-      searchFilteredItemsCount: 0,
+      searchTotalFilteredRows: 0,
       selectedRows,
       tableHeaderCheckboxIndeterminate,
       tableHeaderCheckboxModel,
     };
   },
   computed: {
-    dumps() {
-      return this.$store.getters['dumps/allDumps'];
+    filteredRows() {
+      return this.searchFilter
+        ? this.searchTotalFilteredRows
+        : this.filteredDumps.length;
     },
-    tableItems() {
-      return this.dumps.map((item) => {
+    allDumps() {
+      return this.$store.getters['dumps/allDumps'].map((item) => {
         return {
           ...item,
           actions: [
@@ -264,32 +287,34 @@
         };
       });
     },
-    filteredTableItems() {
+    filteredDumpsByDate() {
       return this.getFilteredTableDataByDate(
-        this.tableItems,
+        this.allDumps,
         this.filterStartDate,
         this.filterEndDate,
         'dateTime'
       );
     },
-    filteredItemCount() {
-      return this.searchFilter
-        ? this.searchFilteredItemsCount
-        : this.filteredTableItems.length;
+    filteredDumps() {
+      return this.getFilteredTableData(
+        this.filteredDumpsByDate,
+        this.activeFilters
+      );
     },
   },
   created() {
     this.startLoader();
-    this.$store
-      .dispatch('dumps/getBmcDumpEntries')
-      .finally(() => this.endLoader());
+    this.$store.dispatch('dumps/getAllDumps').finally(() => this.endLoader());
   },
   methods: {
     convertBytesToMegabytes(bytes) {
       return parseFloat((bytes / 1000000).toFixed(3));
     },
-    onChangeSearchFilter(items) {
-      this.searchFilteredItemsCount = items.length;
+    onFilterChange({ activeFilters }) {
+      this.activeFilters = activeFilters;
+    },
+    onFiltered(filteredItems) {
+      this.searchTotalFilteredRows = filteredItems.length;
     },
     onChangeDateTimeFilter({ fromDate, toDate }) {
       this.filterStartDate = fromDate;
diff --git a/src/views/Logs/Dumps/DumpsForm.vue b/src/views/Logs/Dumps/DumpsForm.vue
index 02ec186..07f4a06 100644
--- a/src/views/Logs/Dumps/DumpsForm.vue
+++ b/src/views/Logs/Dumps/DumpsForm.vue
@@ -34,10 +34,8 @@
 
 <script>
 import { required } from 'vuelidate/lib/validators';
-
 import ModalConfirmation from './DumpsModalConfirmation';
 import Alert from '@/components/Global/Alert';
-
 import BVToastMixin from '@/components/Mixins/BVToastMixin';
 import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
 
@@ -62,9 +60,13 @@
     handleSubmit() {
       this.$v.$touch();
       if (this.$v.$invalid) return;
+
+      // System dump initiation
       if (this.selectedDumpType === 'system') {
         this.showConfirmationModal();
-      } else {
+      }
+      // BMC dump initiation
+      else if (this.selectedDumpType === 'bmc') {
         this.$store
           .dispatch('dumps/createBmcDump')
           .then(() =>
