diff --git a/agent/common/main.cc b/agent/common/main.cc
index b211cfb..c4a0b53 100644
--- a/agent/common/main.cc
+++ b/agent/common/main.cc
@@ -20,8 +20,65 @@
 #include "server.h"
 #include "core.h"
 
+using namespace std;
+
+/*
+*   This function displays openolt version, BAL version, openolt build date
+*   and other VCS params like VCS url, VCS ref, commit date and exits.
+*
+*   @param argc : number of arguments
+*   @param argv : vector of arguments
+*/
+void display_version_info(int argc, char *argv[]) {
+
+    string version = "";
+    string bal_version = "";
+    string label_vcs_url = "";
+    string label_vcs_ref = "";
+    string label_build_date = "";
+    string label_commit_date = "";
+
+    #ifdef VERSION
+        version = VERSION;
+    #endif
+
+    #ifdef BAL_VER
+        bal_version = BAL_VER;
+    #endif
+
+    #ifdef LABEL_VCS_URL
+        label_vcs_url = LABEL_VCS_URL;
+    #endif
+
+    #ifdef LABEL_VCS_REF
+        label_vcs_ref = LABEL_VCS_REF;
+    #endif
+
+    #ifdef LABEL_BUILD_DATE
+       label_build_date = LABEL_BUILD_DATE;
+    #endif
+
+    #ifdef LABEL_COMMIT_DATE
+       label_commit_date = LABEL_COMMIT_DATE;
+    #endif
+
+    for (int i = 1; i < argc; ++i) {
+        if(strcmp(argv[i], "--version") == 0 || (strcmp(argv[i], "-v") == 0)) {
+           std::cout << "OpenOLT agent: " << version << "\n";
+           std::cout << "BAL version: " << bal_version << "\n";
+           std::cout << "Label VCS Url: " << label_vcs_url << "\n";
+           std::cout << "Label VCS Ref: " << label_vcs_ref << "\n";
+           std::cout << "Label build date: " << label_build_date << "\n";
+           std::cout << "Label commit date: " << label_commit_date << "\n";
+           exit(0);
+        }
+    }
+}
+
 int main(int argc, char** argv) {
 
+    display_version_info(argc, argv);
+
     Status status = Enable_(argc, argv);
     if (!status.ok()) {
         std::cout << "ERROR: Enable_ failed - "
