code: func (d *Peer) handleSubPeersMsg(msg *subPeersMsg) error {
  	d.setDepth(msg.Depth)
  	// only send peers after the initial subPeersMsg
  	if !d.sentPeers {
  		var peers []*BzzAddr
  		// iterate connection in ascending order of disctance from the remote address
  		d.kad.EachConn(d.Over(), 255, func(p *Peer, po int) bool {
  			// terminate if we are beyond the radius
  			if uint8(po) < msg.Depth {
  				return false
  			}
  			if !d.seen(p.BzzAddr) { // here just records the peer sent
  				peers = append(peers, p.BzzAddr)
  			}
  			return true
  		})
  		// if useful  peers are found, send them over
  		if len(peers) > 0 {
  			go d.Send(context.TODO(), &peersMsg{Peers: sortPeers(peers)})
  		}
  	}
  	d.sentPeers = true
  	return nil
  }
docs: // handleSubPeersMsg handles incoming subPeersMsg
  // this message represents the saturation depth of the remote peer
  // saturation depth is the radius within which the peer subscribes to peers
  // the first time this is received we send peer info on all
  // our connected peers that fall within peers saturation depth
  // otherwise this depth is just recorded on the peer, so that
  // subsequent new connections are sent iff they fall within the radius