From 5496449588ca40226ba459cb171f2bc46a6e4c06 Mon Sep 17 00:00:00 2001
From: Dinesh Dutt <dd.ps4u@gmail.com>
Date: Mon, 22 Jan 2024 04:17:22 -0800
Subject: [PATCH] poller/ospfNbr: fix IOSXE uptime parsing

Signed-off-by: Dinesh Dutt <dd.ps4u@gmail.com>
---
 suzieq/poller/worker/services/ospfNbr.py | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/suzieq/poller/worker/services/ospfNbr.py b/suzieq/poller/worker/services/ospfNbr.py
index 0bfae0d631..55da3272f7 100644
--- a/suzieq/poller/worker/services/ospfNbr.py
+++ b/suzieq/poller/worker/services/ospfNbr.py
@@ -3,8 +3,9 @@
 import numpy as np
 
 from suzieq.poller.worker.services.service import Service
-from suzieq.shared.utils import get_timestamp_from_cisco_time
-from suzieq.shared.utils import get_timestamp_from_junos_time
+from suzieq.shared.utils import (get_timestamp_from_cisco_time,
+                                 get_timestamp_from_iosxe_time,
+                                 get_timestamp_from_junos_time)
 
 
 class OspfNbrService(Service):
@@ -136,15 +137,16 @@ def _clean_nxos_data(self, processed_data, raw_data):
         return processed_data
 
     def _clean_ios_data(self, processed_data, raw_data):
+        rel_timestamp = raw_data[0]['cmd_timestamp']/1000
         for entry in processed_data:
             # make area the dotted model
             area = entry.get('area', '')
             if area.isdecimal():
                 entry['area'] = str(ip_address(int(area)))
             entry['state'] = entry['state'].lower()
-            entry['lastUpTime'] = get_timestamp_from_cisco_time(
-                entry['lastUpTime'], raw_data[0]['timestamp']/1000)
-            entry['lastChangeTime'] = entry['lastUpTime']
+            up_ts: int = get_timestamp_from_iosxe_time(entry['lastUpTime'],
+                                                       rel_timestamp)
+            entry['lastChangeTime'] = up_ts*1000
             entry['lastDownTime'] = 0
             entry['lsaRtxCnt'] = int(entry['lsaRetxCnt'])
             entry['areaStub'] = entry['areaStub'] == 'Stub'