IPv6 support and cleanup of address family dependency in userland utilities

Project description

FreeBSD boasts a plethora of userspace command tools utilizing IPv4 network programming APIs and exhibiting address family dependency. With the emergence of IPv6 to address the limitations of IPv4, it's imperative to update these tools to utilize address-independent APIs, thereby facilitating seamless handling of both IPv4 and IPv6 connections.

Approach to solving the problem

Deliverables

  1. Ensure that all command line tools (located in sbin/, usr.sbin/, bin/, and usr.bin/) are updated to support both IPv4 and IPv6 seamlessly, achieving IPv6 cleanliness.

Milestones

  1. Write the utilities for both easy and medium levels before the Mid Term Evaluation (July 8 - July 12).
  2. Complete writing all utilities before the End Term Evaluation (August 26).

Weekly report

Date

Week

5/27 - 6/6

Week 1 - Week 2

6/7 - 6/14

Week 3

6/15 - 6/28

Week 4 - Week 5

6/29 - 7/11

Week 6 - Week 7

Test Plan

Conduct thorough testing on an IPv6-only machine to verify the functionality and compatibility of the updated utilities. Consider implementing Automated Testing Framework (ATF) for comprehensive testing coverage.

The Code

Utility

Patch

Description

rwhod(8)

D45124

Add IPv6 support to let rwhod can host on ipv6 address.

ypbind(8)

D45515

Add version 3 of ypbind from Sun. Add a new structure to represent the IPv4/6 address so that ypbind can work with ipv6. Also, revise version 2 of ypbind to use TI-RPC function instead of TS-RPC function.

arp(8)

D45594

Remove gethostby*() calls.

ppp(8)

D45601

Remove gethostby*() calls.

systat(1)

D45723

Remove gethostby*() calls.

rarpd(1)

D45903

Remove gethostby*() calls.

traceroute(8)

D45911

Remove gethostby*() calls.

netstat(1)

D45926

Remove gethostby*() calls.

getent(1)

D45949

Remove gethostby*() calls.

SummerOfCode2024Projects/IPv6SupportAndCleanupOfAddressFamilyDependencyInUserlandUtilities (last edited 2024-07-12T09:05:04+0000 by YanHaoWang)