++ info ++ link local

This commit is contained in:
Nico Schottelius 2019-03-19 23:21:40 +01:00
parent cfba26632a
commit 2a623a0807
2 changed files with 9 additions and 4 deletions

View File

@ -113,7 +113,7 @@
| | | |
| 2019-03-21 | Meet Laurent #3 | |
| | - My dog ate my homework | |
| | | |
| | - Router solicitation for finding router on startup! | |
| | | |
| | | |
| 2019-03-30 | NAT64 1:1 table ICMP, ICMPv6 working | |
@ -770,8 +770,8 @@ DEBUG:main:OUTGOING: <Ether dst=00:00:0a:00:00:01 src=00:00:0a:00:00:42 type=0x
DEBUG:main:INCOMING: <Ether dst=00:00:0a:00:00:01 src=00:00:0a:00:00:42 type=0x86dd |<IPv6 version=6 tc=0 fl=0 plen=32 nh=ICMPv6 hlim=255 src=2001:db8::42 dst=fe80::200:aff:fe00:1 |<ICMPv6ND_NA type=Neighbor Advertisement code=0 cksum=0xa5e9 R=0 S=1 O=1 res=0x0 tgt=2001:db8::42 |<ICMPv6NDOptDstLLAddr type=2 len=1 lladdr=00:00:0a:00:00:42 |>>>>
****** Do we have a routing for fe80::/10? Probably not. Shouldn't we see it in the controller then?
****** TODO Implement address learning?
****** TODO Not sure whether we should react on router solicitation
- Using static routes -> should do the job
***** TODO Implement the calculation
***** TODO Sketch the flow for session handling for icmp6 w/o packet loss
- switch receives icmp6 packet for known prefix

View File

@ -49,6 +49,7 @@ class L2Controller(object):
self.info={}
self.info['ndp_multicast'] = ipaddress.ip_network("ff02::1:ff00:0/104")
self.info['mac_address'] = "00:00:0a:00:00:42"
self.info['ipv6_link_local'] = ipaddress.ip_address("fe80::200:aff:fe00:42")
self.info['v6_mask'] = 64
self.info['v6_base'] = ipaddress.ip_network("2001:db8::/32")
@ -399,7 +400,11 @@ class L2Controller(object):
if ICMPv6ND_NS in orig_packet and orig_packet['IPv6'].src == '::':
log.debug("Neighbor solicitation for checking her own IP address")
elif ICMPv6MLReport2 in orig_packet and orig_packet['IPv6'].dst == 'ff02::16':
log.debug("Multicast registration -- should probably handle this")
mc_group = orig_packet['ICMPv6MLDMultAddrRec'].dst
log.debug("Multicast registration for {} from {} -- should probably handle this".format(mc_group, cpu_header['ingress_port']))
elif ICMPv6ND_RS in orig_packet and orig_packet['IPv6'].dst == 'ff02::2':
src = orig_packet['IPv6'].src
log.debug("Router solicitation from {} -- should probably handle this?".format(src))
elif cpu_header.task == self.task['DEBUG']:
log.debug("reassambled={}".format(orig_packet.__repr__()))
elif cpu_header.task == self.task['ICMP6_NS']: