{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":549873382,"defaultBranch":"master","name":"sonic-dhcpmon","ownerLogin":"sonic-net","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-10-11T21:49:59.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/102750714?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717525916.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"22a7467a8ab3e26c3d20e959a0702380f0d4b5ae","ref":"refs/heads/202405","pushedAt":"2024-06-04T18:31:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bingwang-ms","name":null,"path":"/bingwang-ms","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/66248323?s=80&v=4"},"commit":{"message":"Fix revert (#21)","shortMessageHtmlLink":"Fix revert (#21)"}},{"before":"244307304688ada1062a36554acc1fa95610f17d","after":"099e14843c3dcf5176664a9fa0e9cb44cfedf7ce","ref":"refs/heads/202311","pushedAt":"2024-05-31T05:10:20.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"yxieca","name":"Ying Xie","path":"/yxieca","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/18753401?s=80&v=4"},"commit":{"message":"Merge pull request #22 from yaqiangz/202311_cherry_pick\n\n[202311] Backport change from master into 202311","shortMessageHtmlLink":"Merge pull request #22 from yaqiangz/202311_cherry_pick"}},{"before":"b1d890a59cb3d4ca2a85adb07607352e4276a7f2","after":"22a7467a8ab3e26c3d20e959a0702380f0d4b5ae","ref":"refs/heads/master","pushedAt":"2024-03-06T17:44:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kellyyeh","name":null,"path":"/kellyyeh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42761586?s=80&v=4"},"commit":{"message":"Fix revert (#21)","shortMessageHtmlLink":"Fix revert (#21)"}},{"before":"fc20a97ba2eba753974ea95d504d130093030596","after":"b1d890a59cb3d4ca2a85adb07607352e4276a7f2","ref":"refs/heads/master","pushedAt":"2024-03-06T02:53:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kellyyeh","name":null,"path":"/kellyyeh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42761586?s=80&v=4"},"commit":{"message":"Revert DHCP Counter (#20)\n\n* Revert \"[counter] Clear counter table when dhcpmon init (#14)\"\r\n\r\nThis reverts commit bace2e0360b7004ac5e0f4f5dc0efa2615d08614.\r\n\r\n* Revert \"Merge pull request #13 from jcaiMR/dev/jcai_master_interface_counter\"\r\n\r\nThis reverts commit 7c55e502a1b054aa01c056dc1018e4b863975445, reversing\r\nchanges made to a3c5381307ec4f7fbcc2ac8626caf3b32d997127.\r\n\r\n* Revert \"refine counting logic\"\r\n\r\nThis reverts commit 085a0870e0a9b4829ac5e4c0a53e7fab175015a5.","shortMessageHtmlLink":"Revert DHCP Counter (#20)"}},{"before":"b70b169247c5fa6f1921f167dce03c1011c28a65","after":null,"ref":"refs/heads/test","pushedAt":"2024-02-29T02:38:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kellyyeh","name":null,"path":"/kellyyeh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42761586?s=80&v=4"}},{"before":null,"after":"b70b169247c5fa6f1921f167dce03c1011c28a65","ref":"refs/heads/test","pushedAt":"2024-02-29T00:47:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kellyyeh","name":null,"path":"/kellyyeh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42761586?s=80&v=4"},"commit":{"message":"Update dhcp_device.cpp","shortMessageHtmlLink":"Update dhcp_device.cpp"}},{"before":"7c55e502a1b054aa01c056dc1018e4b863975445","after":"244307304688ada1062a36554acc1fa95610f17d","ref":"refs/heads/202311","pushedAt":"2024-01-10T03:45:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yaqiangz","name":"Yaqiang Zhu","path":"/yaqiangz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26435361?s=80&v=4"},"commit":{"message":"[counter] Clear counter table when dhcpmon init (#14) (#16)\n\nCherry-pick from #14\r\n\r\nWhy I did it\r\nFix issue sonic-net/sonic-buildimage#15047\r\ndhcp counter didn't restore after config reload\r\n\r\nWork item tracking\r\nMicrosoft ADO (number only): 26270786\r\nHow I did it\r\nClear all counters when dhcpmon start\r\nRemove clear counter in initialize_counter since they are cleared in previous\r\nHow to verify it\r\nBuild debian packet and install in DUT do manually testing\r\nRun dhcp_relay test, all passed","shortMessageHtmlLink":"[counter] Clear counter table when dhcpmon init (#14) (#16)"}},{"before":"bace2e0360b7004ac5e0f4f5dc0efa2615d08614","after":"fc20a97ba2eba753974ea95d504d130093030596","ref":"refs/heads/master","pushedAt":"2024-01-10T01:11:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yaqiangz","name":"Yaqiang Zhu","path":"/yaqiangz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26435361?s=80&v=4"},"commit":{"message":"[202311][counter] Clear counter table when dhcpmon init (#14)\n\n[202311][counter] Clear counter table when dhcpmon init (#14)\r\n\r\nCherry-pick from #14\r\n\r\nWhy I did it\r\nFix issue sonic-net/sonic-buildimage#15047\r\ndhcp counter didn't restore after config reload\r\n\r\nWork item tracking\r\nMicrosoft ADO (number only): 26270786\r\nHow I did it\r\nClear all counters when dhcpmon start\r\nRemove clear counter in initialize_counter since they are cleared in previous\r\nHow to verify it\r\nBuild debian packet and install in DUT do manually testing\r\nRun dhcp_relay test, all passed\r\n\r\nSigned-off-by: Yaqiang Zhu ","shortMessageHtmlLink":"[202311][counter] Clear counter table when dhcpmon init (#14)"}},{"before":"7c55e502a1b054aa01c056dc1018e4b863975445","after":"bace2e0360b7004ac5e0f4f5dc0efa2615d08614","ref":"refs/heads/master","pushedAt":"2024-01-05T03:29:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kellyyeh","name":null,"path":"/kellyyeh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42761586?s=80&v=4"},"commit":{"message":"[counter] Clear counter table when dhcpmon init (#14)","shortMessageHtmlLink":"[counter] Clear counter table when dhcpmon init (#14)"}},{"before":null,"after":"7c55e502a1b054aa01c056dc1018e4b863975445","ref":"refs/heads/202311","pushedAt":"2023-12-21T18:35:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yxieca","name":"Ying Xie","path":"/yxieca","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/18753401?s=80&v=4"},"commit":{"message":"Merge pull request #13 from jcaiMR/dev/jcai_master_interface_counter\n\nWhy I did it\r\nPer-interface counter support for dhcp packets in dhcpmon.\r\n\r\nWork item tracking\r\nMicrosoft ADO (17271822):\r\nHow I did it\r\nAdd \"DHCP_COUNTER_TABLE|\" in Redis STATE_DB.\r\n\r\nHow to verify it\r\nMaunally test and run test_dhcp_relay.py","shortMessageHtmlLink":"Merge pull request #13 from jcaiMR/dev/jcai_master_interface_counter"}},{"before":"a3c5381307ec4f7fbcc2ac8626caf3b32d997127","after":"7c55e502a1b054aa01c056dc1018e4b863975445","ref":"refs/heads/master","pushedAt":"2023-09-14T01:57:06.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"StormLiangMS","name":null,"path":"/StormLiangMS","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89824293?s=80&v=4"},"commit":{"message":"Merge pull request #13 from jcaiMR/dev/jcai_master_interface_counter\n\nWhy I did it\r\nPer-interface counter support for dhcp packets in dhcpmon.\r\n\r\nWork item tracking\r\nMicrosoft ADO (17271822):\r\nHow I did it\r\nAdd \"DHCP_COUNTER_TABLE|\" in Redis STATE_DB.\r\n\r\nHow to verify it\r\nMaunally test and run test_dhcp_relay.py","shortMessageHtmlLink":"Merge pull request #13 from jcaiMR/dev/jcai_master_interface_counter"}},{"before":"c5ef7e765db782f6e7bb66bbd28732b9968c40e6","after":"a3c5381307ec4f7fbcc2ac8626caf3b32d997127","ref":"refs/heads/master","pushedAt":"2023-08-21T14:35:53.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"StormLiangMS","name":null,"path":"/StormLiangMS","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89824293?s=80&v=4"},"commit":{"message":"Merge pull request #11 from jcaiMR/dev/jcai_fix_err_log\n\nfix a LOG_NOTICE message format issue","shortMessageHtmlLink":"Merge pull request #11 from jcaiMR/dev/jcai_fix_err_log"}},{"before":"824a1448b9cbe685664f94c25aa00c37e3e3c058","after":"c5ef7e765db782f6e7bb66bbd28732b9968c40e6","ref":"refs/heads/master","pushedAt":"2023-08-18T01:02:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kellyyeh","name":null,"path":"/kellyyeh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42761586?s=80&v=4"},"commit":{"message":"Change common_libs dependencies from buster to bullseye (#9)","shortMessageHtmlLink":"Change common_libs dependencies from buster to bullseye (#9)"}},{"before":"32c0c3f4a19a0a836c7b3886dc4cdb7384cae464","after":"824a1448b9cbe685664f94c25aa00c37e3e3c058","ref":"refs/heads/master","pushedAt":"2023-06-27T00:20:00.635Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"qiluo-msft","name":"Qi Luo","path":"/qiluo-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11406616?s=80&v=4"},"commit":{"message":"replace atoi with strtol (#6)\n\nFrom Semgrep: https://semgrep.dev/r?q=c.lang.correctness.incorrect-use-ato-fn.incorrect-use-ato-fn\r\n\r\n> Avoid the 'ato*()' family of functions. Their use can lead to undefined behavior, integer overflows, and lack of appropriate error handling. Instead prefer the 'strtol*()' family of functions.\r\n\r\nFrom atoi() man page: https://www.man7.org/linux/man-pages/man3/atoi.3.html\r\n\r\n> The atoi() function converts the initial portion of the string pointed to by nptr to int. The behavior is the same as\r\n> strtol(nptr, NULL, 10);\r\n> except that atoi() does not detect errors.\r\n\r\nTherefore, replace atoi() with strtol()\r\n\r\nVerified by kill dhcpmon process, installing new .deb change to dhcp_relay docker, execute dhcpmon process, check if counters is printing in syslog, compare counters before and after this change.\r\nlogs: \r\n[before.txt](https://github.com/sonic-net/sonic-dhcpmon/files/11377335/before.txt)\r\n[after.txt](https://github.com/sonic-net/sonic-dhcpmon/files/11377336/after.txt)\r\n\r\nexample commands: \r\n[command.txt](https://github.com/sonic-net/sonic-dhcpmon/files/11423945/command.txt)","shortMessageHtmlLink":"replace atoi with strtol (#6)"}},{"before":"3c16c8c4ded29c193695d0acc7693f9cada3dfcb","after":"32c0c3f4a19a0a836c7b3886dc4cdb7384cae464","ref":"refs/heads/master","pushedAt":"2023-06-26T20:45:47.924Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"qiluo-msft","name":"Qi Luo","path":"/qiluo-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11406616?s=80&v=4"},"commit":{"message":"Fix libswsscommon package installation for non-amd64 (#7)","shortMessageHtmlLink":"Fix libswsscommon package installation for non-amd64 (#7)"}},{"before":"24364a3c897df22f51e9951a381bfb6ea4996f01","after":"3c16c8c4ded29c193695d0acc7693f9cada3dfcb","ref":"refs/heads/master","pushedAt":"2023-05-02T18:36:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kellyyeh","name":null,"path":"/kellyyeh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42761586?s=80&v=4"},"commit":{"message":"[ci] Switch to using regular swss-common artifacts (#5)\n\nThe swss-common pipeline is now built for Bullseye.\r\n\r\nSigned-off-by: Saikrishna Arcot ","shortMessageHtmlLink":"[ci] Switch to using regular swss-common artifacts (#5)"}},{"before":"899e7f404a3bc186a3196e621d05b3438d147e25","after":null,"ref":"refs/heads/codeql","pushedAt":"2023-03-16T19:37:07.365Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kellyyeh","name":null,"path":"/kellyyeh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42761586?s=80&v=4"}},{"before":"fdfbe617ef81dd85b908a707c31807bb507003dd","after":null,"ref":"refs/heads/dhcpmon-submodule","pushedAt":"2023-03-16T19:37:05.863Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kellyyeh","name":null,"path":"/kellyyeh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42761586?s=80&v=4"}},{"before":"9368a334ed80ecb3b55341ef3658486692ed8fc0","after":null,"ref":"refs/heads/update","pushedAt":"2023-03-16T19:37:03.174Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kellyyeh","name":null,"path":"/kellyyeh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42761586?s=80&v=4"}},{"before":"7655d241483718a74fef62fe0e84bb44a55ece73","after":"24364a3c897df22f51e9951a381bfb6ea4996f01","ref":"refs/heads/master","pushedAt":"2023-03-16T19:33:32.391Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kellyyeh","name":null,"path":"/kellyyeh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42761586?s=80&v=4"},"commit":{"message":"Update dhcpmon rx/tx packet filtering and fix server rx count (#13898) (#4)\n\nWhy I did it\r\nDhcpmon had incorrect RX count for server side packets. It does not raise any false alarms, but could miss catching server side packet count mismatch between snapshot and current counter.\r\n\r\nAdd debug mode which prints counter to syslog\r\n\r\nHow I did it\r\nDue to dualtor inbound filter requirement, there are currently two filters, each for listening to rx / tx packets.\r\nOriginally, we opened up an rx/tx socket for each interface specified, which causes duplicate socket. Now we initialize the sockets only once. Both sockets are not binded to an interface, and we use vlan to interface mapping to filter packets. For inbound uplinks, we use a portchannel to interface mapping.\r\n\r\nPrevious dhcpmon counter before dual tor change:\r\n[ Agg-Vlan1000- Current rx/tx] Discover: 1/ 4, Offer: 1/ 1, Request: 3/ 12, ACK: 1/ 1\r\n[ eth0- Current rx/tx] Discover: 0/ 0, Offer: 0/ 0, Request: 0/ 0, ACK: 0/ 0\r\n[ eth0- Current rx/tx] Discover: 0/ 0, Offer: 0/ 0, Request: 0/ 0, ACK: 0/ 0\r\n[ PortChannel104- Current rx/tx] Discover: 0/ 1, Offer: 0/ 0, Request: 0/ 3, ACK: 0/ 0\r\n[ PortChannel103- Current rx/tx] Discover: 0/ 1, Offer: 0/ 0, Request: 0/ 3, ACK: 0/ 0\r\n[ PortChannel102- Current rx/tx] Discover: 0/ 2, Offer: 1/ 0, Request: 0/ 6, ACK: 1/ 0\r\n[ PortChannel101- Current rx/tx] Discover: 0/ 0, Offer: 0/ 0, Request: 0/ 0, ACK: 0/ 0\r\n[ Vlan1000- Current rx/tx] Discover: 1/ 0, Offer: 0/ 1, Request: 3/ 0, ACK: 0/ 1\r\n[ Agg-Vlan1000- Current rx/tx] Discover: 1/ 4, Offer: 1/ 1, Request: 3/ 12, ACK: 1/ 1\r\n\r\nDhcpmon counter after this PR:\r\n[ PortChannel104- Current rx/tx] Discover: 0/ 1, Offer: 0/ 0, Request: 0/ 3, ACK: 0/ 0\r\n[ PortChannel103- Current rx/tx] Discover: 0/ 1, Offer: 0/ 0, Request: 0/ 3, ACK: 0/ 0\r\n[ PortChannel102- Current rx/tx] Discover: 0/ 2, Offer: 1/ 0, Request: 0/ 6, ACK: 1/ 0\r\n[ PortChannel101- Current rx/tx] Discover: 0/ 0, Offer: 0/ 0, Request: 0/ 0, ACK: 0/ 0\r\n[ Vlan1000- Current rx/tx] Discover: 1/ 0, Offer: 0/ 1, Request: 3/ 0, ACK: 0/ 1\r\n[ Agg-Vlan1000- Current rx/tx] Discover: 1/ 4, Offer: 1/ 1, Request: 3/ 12, ACK: 1/ 1\r\n\r\nHow to verify it\r\nRan dhcp relay test to send all four packets in singles and batches on both single ToR and dual ToR. Counter was as expected.","shortMessageHtmlLink":"Update dhcpmon rx/tx packet filtering and fix server rx count (#13898) ("}},{"before":null,"after":"9368a334ed80ecb3b55341ef3658486692ed8fc0","ref":"refs/heads/update","pushedAt":"2023-03-16T19:29:53.682Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kellyyeh","name":null,"path":"/kellyyeh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42761586?s=80&v=4"},"commit":{"message":"Update dhcpmon rx/tx packet filtering and fix server rx count (#13898)\n\nWhy I did it\r\nDhcpmon had incorrect RX count for server side packets. It does not raise any false alarms, but could miss catching server side packet count mismatch between snapshot and current counter.\r\n\r\nAdd debug mode which prints counter to syslog\r\n\r\nHow I did it\r\nDue to dualtor inbound filter requirement, there are currently two filters, each for listening to rx / tx packets.\r\nOriginally, we opened up an rx/tx socket for each interface specified, which causes duplicate socket. Now we initialize the sockets only once. Both sockets are not binded to an interface, and we use vlan to interface mapping to filter packets. For inbound uplinks, we use a portchannel to interface mapping.\r\n\r\nPrevious dhcpmon counter before dual tor change:\r\n[ Agg-Vlan1000- Current rx/tx] Discover: 1/ 4, Offer: 1/ 1, Request: 3/ 12, ACK: 1/ 1\r\n[ eth0- Current rx/tx] Discover: 0/ 0, Offer: 0/ 0, Request: 0/ 0, ACK: 0/ 0\r\n[ eth0- Current rx/tx] Discover: 0/ 0, Offer: 0/ 0, Request: 0/ 0, ACK: 0/ 0\r\n[ PortChannel104- Current rx/tx] Discover: 0/ 1, Offer: 0/ 0, Request: 0/ 3, ACK: 0/ 0\r\n[ PortChannel103- Current rx/tx] Discover: 0/ 1, Offer: 0/ 0, Request: 0/ 3, ACK: 0/ 0\r\n[ PortChannel102- Current rx/tx] Discover: 0/ 2, Offer: 1/ 0, Request: 0/ 6, ACK: 1/ 0\r\n[ PortChannel101- Current rx/tx] Discover: 0/ 0, Offer: 0/ 0, Request: 0/ 0, ACK: 0/ 0\r\n[ Vlan1000- Current rx/tx] Discover: 1/ 0, Offer: 0/ 1, Request: 3/ 0, ACK: 0/ 1\r\n[ Agg-Vlan1000- Current rx/tx] Discover: 1/ 4, Offer: 1/ 1, Request: 3/ 12, ACK: 1/ 1\r\n\r\nDhcpmon counter after this PR:\r\n[ PortChannel104- Current rx/tx] Discover: 0/ 1, Offer: 0/ 0, Request: 0/ 3, ACK: 0/ 0\r\n[ PortChannel103- Current rx/tx] Discover: 0/ 1, Offer: 0/ 0, Request: 0/ 3, ACK: 0/ 0\r\n[ PortChannel102- Current rx/tx] Discover: 0/ 2, Offer: 1/ 0, Request: 0/ 6, ACK: 1/ 0\r\n[ PortChannel101- Current rx/tx] Discover: 0/ 0, Offer: 0/ 0, Request: 0/ 0, ACK: 0/ 0\r\n[ Vlan1000- Current rx/tx] Discover: 1/ 0, Offer: 0/ 1, Request: 3/ 0, ACK: 0/ 1\r\n[ Agg-Vlan1000- Current rx/tx] Discover: 1/ 4, Offer: 1/ 1, Request: 3/ 12, ACK: 1/ 1\r\n\r\nHow to verify it\r\nRan dhcp relay test to send all four packets in singles and batches on both single ToR and dual ToR. Counter was as expected.","shortMessageHtmlLink":"Update dhcpmon rx/tx packet filtering and fix server rx count (#13898)"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0wNFQxODozMTo1Ni4wMDAwMDBazwAAAARcWTJQ","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wMy0xNlQxOToyOTo1My42ODI4MjlazwAAAAMFJq9K"}},"title":"Activity ยท sonic-net/sonic-dhcpmon"}