Add messages to track the file transfer commands

This patch adds messages to track the file transfer commands. This
will be useful for testing.

Tested:
Unit tested

Google-Bug-Id: 445945270
Change-Id: Idbda5ead2d0d5e652b4dffe26ad15e1c152a5063
Signed-off-by: Kasun Athukorala <kasunath@google.com>
diff --git a/libpldmresponder/file_transfer.cpp b/libpldmresponder/file_transfer.cpp
index 371a90f..ab403ce 100644
--- a/libpldmresponder/file_transfer.cpp
+++ b/libpldmresponder/file_transfer.cpp
@@ -105,7 +105,7 @@
         });
 }
 
-std::optional<uint16_t> Handler::getFreeFileDescriptor(uint16_t fileIdentifier)
+std::optional<uint16_t> Handler::getFreeFileDescriptor()
 {
     uint16_t startValue = this->nextFileDescriptor;
 
@@ -121,15 +121,6 @@
         }
     }
 
-    this->fileDescriptors.emplace(
-        this->nextFileDescriptor,
-        FileDescriptor{.fp = nullptr,
-                       .tid = 0,
-                       .fileSize = 0,
-                       .startingOffset = 0,
-                       .sectionLength = 0,
-                       .prevChecksum = 0,
-                       .fileIdentifier = fileIdentifier});
     return this->nextFileDescriptor;
 }
 
@@ -150,12 +141,12 @@
     }
 
     uint16_t fileIdentifier = decodedReq.file_identifier;
-    std::optional<uint16_t> fdOrRet = getFreeFileDescriptor(fileIdentifier);
+    std::optional<uint16_t> fdOrRet = getFreeFileDescriptor();
     if (!fdOrRet.has_value())
     {
         error(
-            "No free file descriptors available for FileIdentifier: '{FILE_ID}'",
-            "FILE_ID", fileIdentifier);
+            "No free file descriptors available for tid:`{TID}` FileIdentifier: '{FILE_ID}'",
+            "TID", tid, "FILE_ID", fileIdentifier);
         return CmdHandler::ccOnlyResponse(request,
                                           PLDM_FILE_CC_UNABLE_TO_OPEN_FILE);
     }
@@ -170,18 +161,22 @@
     int ret = platformHandler->getFilePointer(fileIdentifier, &fp, &fileSize);
     if (ret != 0)
     {
-        removeFileDescriptor(fdOrRet.value());
         error("Requested FileIdentifier: '{FILE_ID}' not found in PDR",
               "FILE_ID", fileIdentifier);
         return CmdHandler::ccOnlyResponse(request,
                                           PLDM_FILE_CC_INVALID_FILE_IDENTIFIER);
     }
 
-    // Save the open file information
-    FileDescriptor& fileDescriptor = fileDescriptors[fdOrRet.value()];
-    fileDescriptor.tid = tid;
-    fileDescriptor.fp = fp;
-    fileDescriptor.fileSize = fileSize;
+    fileDescriptors.emplace(
+        fdOrRet.value(),
+        FileDescriptor{.fp = fp,
+                       .tid = tid,
+                       .index = fdOrRet.value(),
+                       .fileSize = fileSize,
+                       .startingOffset = 0,
+                       .sectionLength = 0,
+                       .prevChecksum = 0,
+                       .fileIdentifier = fileIdentifier});
 
     size_t respPayloadLength = PLDM_DF_OPEN_RESP_BYTES;
     Response response(sizeof(pldm_msg_hdr) + respPayloadLength, 0);
@@ -197,9 +192,13 @@
     {
         removeFileDescriptor(fdOrRet.value());
         fclose(fp);
+        error("Failed to encode DfOpen response. Err: '{ERROR}'", "ERROR", rc);
         return CmdHandler::ccOnlyResponse(request, PLDM_ERROR);
     }
 
+    info("DfOpen received. tid:{TID} fi:{FI} fd:{FD}", "TID", tid, "FI",
+         fileIdentifier, "FD", fdOrRet.value());
+
     return response;
 }
 
@@ -245,6 +244,7 @@
                                         responsePtr, &respPayloadLength);
     if (rc != 0)
     {
+        error("Failed to encode DfClose response. Err: '{ERROR}'", "ERROR", rc);
         return CmdHandler::ccOnlyResponse(request, PLDM_ERROR);
     }
 
@@ -253,6 +253,8 @@
     fclose(it->second.fp);
     removeFileDescriptor(fileDescriptor);
 
+    info("DfClose received. tid:{TID} fd:{FD}", "TID", tid, "FD",
+         fileDescriptor);
     return response;
 }
 
@@ -379,6 +381,22 @@
         return CmdHandler::ccOnlyResponse(request, PLDM_ERROR);
     }
 
+    if (transferFlag == PLDM_START)
+    {
+        info("Transferring DfRead first part. tid:{TID} fd:{FD}", "TID",
+             fileDescriptor.tid, "FD", fileDescriptor.index);
+    }
+    else if (transferFlag == PLDM_START_AND_END)
+    {
+        info("Transferring DfRead first and last part. tid:{TID} fd:{FD}",
+             "TID", fileDescriptor.tid, "FD", fileDescriptor.index);
+    }
+    else if (transferFlag == PLDM_END)
+    {
+        info("Transferring DfRead last part. tid:{TID} fd:{FD}", "TID",
+             fileDescriptor.tid, "FD", fileDescriptor.index);
+    }
+
     fileDescriptor.prevChecksum = checksum;
     return response;
 }
diff --git a/libpldmresponder/file_transfer.hpp b/libpldmresponder/file_transfer.hpp
index e92c79b..a5ed520 100644
--- a/libpldmresponder/file_transfer.hpp
+++ b/libpldmresponder/file_transfer.hpp
@@ -23,6 +23,7 @@
 {
     FILE* fp;
     pldm_tid_t tid;
+    uint32_t index;
     uint32_t fileSize;
     uint32_t startingOffset;
     uint32_t sectionLength;
@@ -54,7 +55,7 @@
     /**
      * @brief Returns a free file descriptor
      */
-    std::optional<uint16_t> getFreeFileDescriptor(uint16_t fileIdentifier);
+    std::optional<uint16_t> getFreeFileDescriptor();
 
     /**
      * @brief Removes a file descriptor from fileDescriptors