Skip to content
View srisanthosh-b's full-sized avatar
πŸ˜ƒ
πŸ˜ƒ

Block or report srisanthosh-b

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
srisanthosh-b/README.md

Hi πŸ‘‹, I'm Sri Santhosh

Electrical & Electronics Engineer | Aspiring Network Engineer | Java Developer


πŸ‘¨β€πŸ’» About Me

πŸŽ“ Electrical & Electronics Engineering Graduate

πŸ’Ό Professional Experience in:

  • Electrical Hardware Testing
  • Project Management
  • Data Analysis

🌱 Currently Learning

  • Computer Networks (CCNA)
  • Java & Data Structures
  • Linux
  • Network Security

πŸ’‘ Interested In

  • Networking
  • Software Development
  • Problem Solving
  • System Design

🎯 Goal

To build a strong career as a Network Engineer while continuously improving my programming and problem-solving skills.


πŸš€ Tech Stack

πŸ’» Programming Languages

πŸ› οΈ Tools

πŸ“Š Data & Productivity

🌐 Networking


πŸ“‚ Projects

🌐 NetMon (Linux-Kernel based Network Monitor)

Netmon is a lightweight Linux kernel module built in C for monitoring IPv4 network traffic at the Netfilter layer. It captures real-time packet and byte statistics, separates RX and TX traffic, and classifies packets by protocol including TCP, UDP, ICMP, and others. The module exposes the data to user space through a character device and ioctl interface, allowing users to start, stop, reset, and read counters without disrupting normal packet flow.

Key Features

  • Kernel-level packet monitoring using Netfilter hooks
  • Total packet and byte counting
  • RX/TX traffic analysis
  • Protocol-wise classification for TCP, UDP, ICMP, and other packets
  • ioctl-based communication between kernel and user space
  • Passive monitoring without modifying or dropping traffic

πŸ”€ Mini L2 Switch

This project implements a minimal Layer-2 Ethernet switch in the Linux kernel, focusing on MAC learning, forwarding, and basic switch behavior in a virtual networking environment. It uses netfilter hooks, kernel hash tables, and procfs to learn source MAC addresses, forward known unicast traffic, flood broadcast and multicast traffic, and drop unknown unicast frames. The design serves as a practical demonstration of how Layer-2 switching and packet processing work inside the kernel.

Key Features

  • MAC learning from ingress traffic
  • Software-based forwarding table using kernel hashing
  • Unicast forwarding to the correct port
  • Broadcast and multicast flooding
  • Unknown unicast drop policy
  • Per-port traffic statistics tracking
  • Procfs-based visibility for MAC table and switch counters
  • Linux namespace and veth-based lab setup for testing
  • Kernel-level packet interception using netfilter hooks

πŸ“š DSA Library in C

Developed a reusable Data Structures library in C by implementing fundamental data structures from scratch with modular design.

Implemented Data Structures

  • Singly Linked List
  • Doubly Linked List
  • Stack
  • Queue
  • Hash Map
  • Hash Set

Features

  • Modular implementation
  • Dynamic memory allocation
  • CRUD operations
  • Collision handling
  • Reusable APIs

🌐 Networking Labs (Coming Soon)

Currently building networking projects covering:

  • OSI Model
  • TCP/IP
  • IPv4
  • Subnetting
  • Routing
  • Switching
  • NAT
  • DHCP
  • DNS
  • Ethernet
  • TCP Segmentation
  • IP Fragmentation
  • Wireshark Packet Analysis

πŸ”₯ GitHub Streak

GitHub Streak


πŸ“« Connect With Me


πŸ’» Coding Profiles

Add your coding profiles here.


✨ Quote

"You get what you deserveπŸ’―."


⭐ Thanks for visiting my profile!

Pinned Loading

  1. L2_Switch L2_Switch Public

    A hands-on Linux networking lab for implementing a simple Ethernet switch inside the kernel. This project explores MAC table learning, switching logic, network namespace isolation, veth topology se…

    C

  2. Netmon Netmon Public

    Linux kernel monitoring project that captures IPv4 traffic statistics with Netfilter hooks and exposes them via a character device and ioctl interface. It tracks packet/byte totals, RX/TX activity,…

    C

  3. HashSet-Implementation HashSet-Implementation Public

    Lightweight C HashSet implementation with example usage and a simple test harness.

    C

  4. LinkedList-Implementation LinkedList-Implementation Public

    A beginner-friendly C implementation of a singly linked list with node creation, insertion at the beginning/end/position, deletion from the beginning/end/position, and list display. It demonstrates…

    C

  5. Queue-with-LinkedList Queue-with-LinkedList Public

    Compact C implementation of a FIFO queue using a singly linked list. Provides enqueue, dequeue, peek, and isEmpty with dynamic memory handling. Includes usage example and a Mermaid block diagram il…

    C

  6. Stack-with-LinkedList Stack-with-LinkedList Public

    Compact C stack implemented with a singly linked list. Includes push, pop, peek, and isEmpty functions plus an example main.c. Illustrates dynamic memory allocation, pointer-based node management, …

    C