PPP and Proxy-Arp

Richard B. Johnson (root@chaos.analogic.com)
Thu, 4 Dec 1997 11:58:39 -0500 (EST)


Linux 2.1.70 now has new networking problems. The PPP Problem has
apparently been reported, however I have not found how how to fix it.
There are, however, additional problems.....

(1) SOCK_PACKET does not fail, but writes an error to the debug log.

#define SOCK_PACKET 10 /* linux specific way of */
/* getting packets at the dev */
/* level. For writing rarp and */
/* other similar things on the */
/* user level. */
Dec 4 09:00:03 quark kernel: proxy_all uses obsolete (AF_INET,SOCK_PACKET)

[SNIP]
proto = getprotobyname("raw");
if ((fd = socket(AF_INET, SOCK_PACKET, proto->p_proto)) < 0)
{
perror("socket(SOCK_PACKET)");
exit(-1);
}

...Question... What replaces SOCK_PACKET?

(2) Setting an arp table entry with a proxy flag now fails with:

ioctl(SIOCSARP): Operation not supported on transport endpoint

[SNIP]

memset(&arp, 0x00, sizeof(arp));
arp.arp_pa.sa_family = AF_INET;
arp.arp_ha.sa_family = ARPHRD_ETHER;
arp.arp_netmask.sa_family = AF_INET;
memcpy(&arp.arp_ha.sa_data[0], &hw, sizeof(HW));
arp.arp_flags = (ATF_PUBL | ATF_NETMASK);
arp.arp_pa.sa_data[0] = 0x00;
arp.arp_dev[0] = 0x00;
memset(&arp.arp_netmask.sa_data[2], 0x00,0x04);
status = ioctl(fd, SIOCSARP, &arp);
if(status < 0)
{
perror("ioctl(SIOCSARP)");
return errno;
}

Incidentally, a transport endpoint is the only place proxy-arp would
work if it was allowed, so the returned error code is probably not the
best way to describe the problem.

CONFIG_MODULES=y
CONFIG_NET=y
CONFIG_PCI=y
CONFIG_PCI_BIOS=y
CONFIG_SYSVIPC=y
CONFIG_SYSCTL=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
CONFIG_M586=y
CONFIG_BLK_DEV_FD=y
CONFIG_PACKET=y
CONFIG_NETLINK=y
CONFIG_RTNETLINK=y
CONFIG_FIREWALL=y
CONFIG_NET_ALIAS=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_RTNETLINK=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_TOS=y
CONFIG_IP_ROUTE_NAT=y
CONFIG_IP_FIREWALL=y
CONFIG_IP_TRANSPARENT_PROXY=y
CONFIG_IP_ALWAYS_DEFRAG=y
CONFIG_IP_ROUTER=y
CONFIG_NET_IPIP=y
CONFIG_IP_ALIAS=y
CONFIG_IP_NOSR=y
CONFIG_SKB_LARGE=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=y
CONFIG_BLK_DEV_SR=y
CONFIG_SCSI_BUSLOGIC=y
CONFIG_SCSI_OMIT_FLASHPOINT=y
CONFIG_NETDEVICES=y
CONFIG_EQUALIZER=y
CONFIG_NET_ETHERNET=y
CONFIG_NET_ISA=y
CONFIG_NE2000=y
CONFIG_PPP=y
CONFIG_CDROM=y
CONFIG_EXT2_FS=y
CONFIG_ISO9660_FS=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_PROC_FS=y
CONFIG_NFS_FS=y
CONFIG_NFSD=y
CONFIG_SUNRPC=y
CONFIG_LOCKD=y
CONFIG_NLS=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_SERIAL=y

Cheers,
Dick Johnson

Richard B. Johnson
Project Engineer
Analogic Corporation
Penguin : Linux version 2.1.65 on an i586 machine (66.15 BogoMips).
Warning : It's hard to remain at the trailing edge of technology.