+struct sockaddr_pup pupsrc = { AF_PUP };
+struct sockaddr_pup pupdst = { AF_PUP };
+struct sockproto pupproto = { PF_PUP };
+/*
+ * Raw PUP input.
+ */
+rpup_input(m)
+ struct mbuf *m;
+{
+ register struct pup_header *pup = mtod(m, struct pup_header *);
+
+ pupproto.sp_protocol = pup->pup_type;
+ bcopy((caddr_t)&pup->pup_dnet, (caddr_t)&pupdst.spup_net,
+ sizeof (struct pupport));
+ bcopy((caddr_t)&pup->pup_snet, (caddr_t)&pupsrc.spup_net,
+ sizeof (struct pupport));
+ raw_input(m, &pupproto, (struct sockaddr *)&pupsrc,
+ (struct sockaddr *)&pupdst);
+}
+